updateの高度な使い方

1116 ワード

1、関連多表入UPDATE
updateコマンドでは、複数のデータテーブルの関連レコードを変更します.次のコマンドは、データテーブルtable 1のデータ記録のcolumnAフィールドを変更します.新しいデータはtable 2から来ます.columnBデータ列.この2つのフィールドの関係は、2つのデータテーブルの同名IDフィールドtableIDによって関係されます.
update table1,table2
set table1.columnA = table2.columnB
where table1.tableID = table2.tableID

2、ソートリストのデータレコードの編集(update..order by..limit)
あるソート条件を満たす前N個または後N個のデータレコードのみを変更したい場合は、updateコマンドに必要なorder byとlimit句を付けることができます.次のコマンドは、tablenameデータテーブルのnameフィールドをアルファベット順に並べ替えた上位10レコードのmydataフィールドをゼロに設定します.
update tablename set mydata = 0 order by name limit 10;

 
3、Updateのsetコマンドにサブクエリを入れる(効率的なupdate)
applyテーブルのpara 3フィールドを更新したい場合、この値のソースが別のテーブルapply 1から来ている場合は、次の文を参照してください.カッコがサブクエリのwhere句であることを保証するには、クエリのフィールド値が一意のレコードであることを保証します.
update `apply` as cust set cust.para3 =
 ( select para3_table.para3 from `apply1` as  para3_table 
where cust.old_id = para3_table.id and cust.update_time = para3_table.update_time);