sql语句

记录一些高效的优化的sql语句,当然在学习和验证阶段,还不一定是最优的,需要测试和验证。

update select

update table set
     row1=(select a.row1 from
               (select MD5(CONCAT(row3,":",row4)) row1 from table
WHERE row3="xxxxx") a),
     row2=(select a.row2 from
               (select MD5(CONCAT(row3,"@",row4)) row2 from table WHERE row3="xxxxx")
               a)
WHERE row3="xxxxx"

以上是比较常见的,先select表中的某些字段,再更新表中的某些字段,如果按正常思路写的话会报错,提示不能这样,所以上述sql语句表示:

从table表中取出条件为row3=‘xxxx’的记录row3和row4字段,经过对该俩字段进行不同的MD5加密后,更新到该记录原本的row1和row2.

insert select

从某个表select某些记录,插入到另一个表

insert into table1 (row1,row2,row3) (select row1,row2,'xx' from table2 where createdat <= 1469754000 and createdat >= 1469754000)

以上是比较常见的应用于同步数据方面的sql语句。