UPDATE quan.hexiao_code SET sort_code='LKUHFS' WHERE sort_code='SAMQLF';
这句话的where部分有两条记录,我只想修改其中一条,该怎么写?
人生最曼妙的风景,竟是内心的淡定与从容!
UPDATE quan.hexiao_code SET sort_code='LKUHFS' WHERE sort_code='SAMQLF' limit 1;
我不知道楼主为什么会有这样的问题,在数据库当中每一条数据不应该都是独立的一条吗,有它自己的特征才对。所以当你WHERE sort_code='SAMQLF'的时候很明显的意思就是更新所有匹配的数据。你如果只是更新一条,那么更新的是哪一条?是不是应该有它的特征才对,所以你应该把这个特征加上。如果你就是那么任性的要随机更新匹配的一条,我的方案就是随机查出sort_code='SAMQLF'的一条记录的ID,用ID来更新这条记录。
WHERE sort_code='SAMQLF'
sort_code='SAMQLF'
刚刚看到了 @shuhai 的回答,感谢他让我知道了还有这样的语法,学艺不精- - |||用UPDATE LIMIT 1确实能解决楼主的问题。不过我还是推荐楼主应该有明确的,比如只更新匹配的并且ID最大的一条UPDATE quan.hexiao_code SET sort_code='LKUHFS' WHERE sort_code='SAMQLF' ORDER BY id DESC LIMIT 1
UPDATE quan.hexiao_code SET sort_code='LKUHFS' WHERE sort_code='SAMQLF' ORDER BY id DESC LIMIT 1
UPDATE quan.hexiao_code SET sort_code='LKUHFS' WHERE sort_code='SAMQLF' limit 1;
我不知道楼主为什么会有这样的问题,在数据库当中每一条数据不应该都是独立的一条吗,有它自己的特征才对。所以当你
WHERE sort_code='SAMQLF'
的时候很明显的意思就是更新所有匹配的数据。你如果只是更新一条,那么更新的是哪一条?是不是应该有它的特征才对,所以你应该把这个特征加上。如果你就是那么任性的要随机更新匹配的一条,我的方案就是随机查出
sort_code='SAMQLF'
的一条记录的ID,用ID来更新这条记录。刚刚看到了 @shuhai 的回答,感谢他让我知道了还有这样的语法,学艺不精- - |||
用UPDATE LIMIT 1确实能解决楼主的问题。不过我还是推荐楼主应该有明确的,比如只更新匹配的并且ID最大的一条
UPDATE quan.hexiao_code SET sort_code='LKUHFS' WHERE sort_code='SAMQLF' ORDER BY id DESC LIMIT 1