指定の行数だけ更新
広告
データを更新する時に更新するデータの行数を指定する方法を確認します。次の書式を使います。
UPDATE tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] WHERE where_condition LIMIT row_count;
通常はWHERE句の条件に適合するデータの全てに対して更新が行われますが、LIMIT句で指定した行数分だけ更新が行われるとそこで終了します。
例えば次のように記述します。
UPDATE uriage SET price = price / 2 WHERE count < 100 LIMIT 5;
上記では「count」カラムの値が100より小さいデータの中で最初の5行分だけ「price」カラムの値を半分にします。
サンプル
実際に試してみます。まず次のようなテーブルを作成します。
mysql> create table uriage(name varchar(20), price int, count int);
テーブルにはデータを次のように格納しておきます。
では「count」カラムの値が10以下のデータを対象に「price」カラムの値を20引きます。この時、更新する行数は2行にします。
mysql> update uriage set price = price - 20 -> where count <= 10 limit 2;
ではデータを取得して確認してみます。
WHERE句で指定した条件に該当するデータは4行ありましたが、LIMIT句で2行と指定してますので最初の2行だけが更新されています。
( Written by Tatsuo Ikura )