mysql 怎么做到update只更新一行数据?
黄舟
黄舟 2017-04-17 15:25:20
0
2
768

UPDATE quan.hexiao_code SET sort_code='LKUHFS' WHERE sort_code='SAMQLF';

这句话的where部分有两条记录,我只想修改其中一条,该怎么写?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回覆(2)
小葫芦

更新 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

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!