複数のレコードをそれぞれ更新する

Node.js - CLI

content テーブル
id name
1 Joe
2 Alex
3 Mike

上記のようなテーブルがあり、「 id が 1 の name カラムを太郎 」、「 id が 2 の name カラムを次郎 」、「 id が 3 の name カラムを三郎 」にそれぞれ一度に変更したい場合は次のようにします。

script.js

const mysql = require('mysql2/promise');

const pool = mysql.createPool({
  host: 'localhost',
  user: 'root',
  database: 'sample',
  password: 'password',
  namedPlaceholders: true, // 設定必須
});

(async () => {
  try {
    let number = [1, 2, 3]
    let data = ['太郎','次郎','三郎']
    await pool.query("UPDATE content SET  name = ELT(FIELD(id,:number), :data) WHERE id IN (:number)", {number, data});
  } catch (err) {
    console.log(err);
  }
  pool.end();
})();