update 高级用法

1、关联多表进去UPDATE

     update命令里对多个数据表里的相关记录做出修改。下面的这条命令将对数据表table1里的一些数据记录的columnA字段做出修改,新数据来自table2.columnB数据列,这两个字段之间的关系通过两个数据表里的同名ID字段tableID建立关系。

Sql代码  收藏代码
  1. update table1,table2  
  2. set table1.columnA = table2.columnB  
  3. where table1.tableID = table2.tableID  

  2、编辑排序清单的数据记录(update .. order by .. limit)

     如果只想对满足某种 排序条件的前N条或后N条数据记录进行修改,可以给update命令加上必要的order by 和 limit 子句。下面这条命令把tablename数据表里的name字段按字母排序后的前10条记录的mydata字段设置为零:

Sql代码  收藏代码
  1. update tablename set mydata = 0 order by name limit 10;  

 

  3、在Update中的set命令里加入子查询(高效的update)

     如果想更新apply表的para3字段,但是这个值来源是来自另一个表apply1,则可以参考以下语句。需要保证括号是的子查询的where子句要保证查询出来的字段值是唯一的一条记录。

Sql代码  收藏代码
  1. update `apply` as cust set cust.para3 =  
  2.  ( select para3_table.para3 from `apply1` as  para3_table   
  3. where cust.old_id = para3_table.id and cust.update_time = para3_table.update_time);  

 

posted @ 2015-03-03 18:22  dsphper  阅读(1123)  评论(0编辑  收藏  举报