MySQL:使用限制查詢更新記錄
使用MySQL 時,可能會遇到需要更新特定記錄的情況表中的行範圍。本文解決了在 UPDATE 查詢中使用 LIMIT 子句是否可行的問題,並提供如何實現此目的的指導。
語法錯誤和正確用法
您的初始查詢嘗試更新從 1001 條記錄開始的行以及接下來的 1000 條記錄。但是,使用的語法不正確。在 MySQL 中,LIMIT 子句用來限制選取行的數量,而不是更新行的數量。更新特定範圍行的正確方法是透過子查詢。
例如,要更新p_id 設定為3 的前1000 行,您可以使用下列指令:
UPDATE `oltp_db`.`users` SET p_id = 3 WHERE id IN ( SELECT id FROM ( SELECT id FROM `oltp_db`.`users` ORDER BY id ASC LIMIT 0, 1000 ) tmp )
處理NULL 值
處理NULL 值UPDATE `oltp_db`.`users` SET p_id = COALESCE(3, p_id) WHERE p_id IS NULL在🎜>在在第二個查詢中,您嘗試使用以下命令更新行p_id 設定為NULL。但是,查詢會失敗,因為在相等性檢查中無法將 NULL 值與非 NULL 值進行比較。若要更新具有NULL p_id 值的行,您可以使用IS NULL 和COALESCE() 函數:透過遵循這些準則,即使在處理NULL 時,您也可以有效地更新MySQL 表中的特定行價值觀。
以上是如何使用 LIMIT 子句更新 MySQL 中特定範圍的行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!