Обновление нескольких строк с помощью node-mysql, NodeJS и Q

Я использую обещания node-mysql, node-js и Q.

Я успешно обновил, удалил и вставил отдельные строки, используя выше. А также вставил несколько строк в одной инструкции в моем сценарии тестирования.

Однако мне нужно обновить несколько строк с разными значениями (пакетный режим) либо в одном запросе, либо в цикле for.

Информация о том, как использовать подготовленные операторы в mysql2 (предполагается улучшить для node-mysql), очень скудна, и примеров здесь нет, хотя это должно быть естественным выбором вместе с обещаниями компенсировать асинхронный характер node-js.

Кроме того, я успешно использовал defred.makeNodeResolver () в различных тестовых сценариях.

Я пытаюсь обновить несколько строк в одном запросе с предложением where и изменением условий.

Это работает, когда я обновляю одну строку. Однако, когда я пытаюсь обновить несколько строк одним запросом, записи не обновляются.

Я готов переключиться на использование цикла for для выполнения нескольких обновлений, а затем агрегировать результат и отправлять его обратно с сервера на клиент, что было бы моим вторым предпочтительным выбором. И я не понимаю, почему это не следует делать таким образом, если производительность не сильно снижается. Но я не нашел никаких примеров, чтобы сделать это таким образом.

var values = [
    { users: "tom", id: 101 },
    { users: "george", id: 102 }
    ];

    // var params = [values.users, values.id ];

    var sql = 'UPDATE tabletest SET users = ? WHERE id = ?;';


    connection.query(sql, [{users: values[0].users}, {id: values[0].id }], defered.makeNodeResolver());

Код, приведенный выше, на самом деле не обновляет несколько строк. Я предполагаю, что в моем синтаксисе есть ошибка.

Но в любом случае, каков наилучший подход к этому в данном конкретном сценарии? Подготовленные операторы, повторные запросы в цикле for или хранимые процедуры?

Ответы на вопрос(5)

Ваш ответ на вопрос