update 高级用法
1、关联多表进去UPDATE
update命令里对多个数据表里的相关记录做出修改。下面的这条命令将对数据表table1里的一些数据记录的columnA字段做出修改,新数据来自table2.columnB数据列,这两个字段之间的关系通过两个数据表里的同名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表的para3字段,但是这个值来源是来自另一个表apply1,则可以参考以下语句。需要保证括号是的子查询的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);