MySQL - 使用LIMIT 的UPDATE 查詢
本文解決了嘗試透過MySQL 資料庫中的LIMIT 子句更新特定行時遇到的子句挑戰。目標是更新指定行 ID 範圍內的行。
語法錯誤和正確查詢
您提供的查詢「UPDATE oltp_db.users SET p_id = 3 LIMIT 1001, 1000",語法不正確。在 UPDATE 查詢中使用 LIMIT 的正確語法是指定起始行號(偏移量)和要更新的行數。正確的查詢應該是:
UPDATE `oltp_db`.`users` SET p_id = 3 LIMIT 1001, 1000;
更新具有NULL 值的行
您的查詢,「UPDATE oltp_db.users SET p_id = 3 WHERE p_id = null ”,也是不正確的。等號運算子「=」不能與 NULL 值一起使用。若要更新具有NULL 值的行,請使用IS NULL 運算符,如下所示:
UPDATE `oltp_db`.`users` SET p_id = 3 WHERE p_id IS NULL;
使用LIMIT 更新多行
要限制更新的行數,請使用用於選擇特定範圍的行ID的子查詢,如以下查詢所示:
UPDATE table_name SET name='test' WHERE id IN ( SELECT id FROM ( SELECT id FROM table_name ORDER BY id ASC LIMIT 0, 10 ) tmp )
This查詢更新「name」列設定為「test」的行,其中行 ID 位於指定範圍內。內部子查詢從表格中選擇前 10 個行 ID,然後在外部更新查詢的 IN 子句中使用它們。
以上是如何使用LIMIT正確更新MySQL中的特定行數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!