我费了好大功夫,组织了一个特别漂亮的语法,来解决“有则更新,无则插入”的SQL语句,结果不能完全满足需求,现在不得不分拆成: 1)select取所有当前值 2) 分析当前值和新值,该插入插入,该更新更新。非常的朴素。
好吧,我知道这部分浪费掉的时间是错在我的自我满足上,工作还是应该以效率为第一优先,自我学习提升次之。
p.s.: 那个漂亮的MySQL专用语法是 INSERT INTO table_name (`col_01`, `col_02`) VALUES( 1, 1 ), ( 2, 2 ) ON DUPLICATE KEY UPDATE `col_01`=VALUES(`col_01`), `col_02`=VALUES(`col_02`)
后来判断重复还需要参照其他表了(字符串用的都是key,实际值在另一个表里查找),我看太复杂了,还是把工作还给php吧
前段时间帮另外一个组写脚本,也用到了这个on duplicate key update + values。
然后被告之“你的脚本有问题!”,结果丫们竟然一个表里面两个unique key。
mssql里面有merge…when matched提供类似效果。
临时帮忙写写脚本还好,我已经被放这里写了两个月的php和sql脚本了,再不写点正经程序,我都要锈了orz
有复数个unique key应该也可以生效的呀
http://stackoverflow.com/questions/3839229/on-duplicate-key-update-with-a-multi-field-index