mysql update語句與limit的結合使用


有時候有需要批量更新數據表中從多少行到多少行的某個字段的值

mysql的update語句只支持更新前多少行,不支持從某行到另一行,比如
UPDATE tb_name SET column_name='test' ORDER BY id ASC LIMIT 30;

更新前30行的某個字段內容,沒什么問題。


 

UPDATE tb_name SET column_name='test' ORDER BY id ASC LIMIT 20,10;
更新從20行到30行的某個字段的內容,這樣會報錯。


 

解決辦法就是采用子查詢的方式
UPDATE tb_name SET column_name='test' WHERE id in (SELECT id FROM (SELECT * FROM tb_name ORDER BY id ASC LIMIT 20,10) AS tt);
這樣就能實現更新表中根據id升序排序的第20條到第30條數據的某個字段的內容


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM