在 MySQL 中更新具有限制的行
在 MySQL 中,在 UPDATE 查询中使用 LIMIT 子句可能会造成混淆。在这里,我们详细解释其用法并解决相关问题。
使用 LIMIT 查询
要更新特定范围内的行,可以使用以下语法:
UPDATE table_name SET column_name = value WHERE id IN ( SELECT id FROM ( SELECT id FROM table_name ORDER BY id ASC LIMIT start_row, row_count ) tmp )
例如,要将行从 1001 更新到 1100, use:
UPDATE table_name SET p_id = 3 WHERE id IN ( SELECT id FROM ( SELECT id FROM table_name ORDER BY id ASC LIMIT 1001, 1000 ) tmp )
无效查询
您提供的查询 (UPDATE oltp_db.users SET p_id = 3 LIMIT 1001, 1000) 无效,因为无法使用 LIMIT直接在 UPDATE 语句中。它必须在子查询中应用,如上所示。
更新空值
如果 p_id 列包含 NULL 值,则以下查询将不起作用:
UPDATE `oltp_db`.`users` SET p_id = 3 WHERE p_id = null
要更新 NULL 值,可以使用 IS NULL状况:
UPDATE `oltp_db`.`users` SET p_id = 3 WHERE p_id IS NULL
以上是如何在 MySQL UPDATE 查询中使用 LIMIT?的详细内容。更多信息请关注PHP中文网其他相关文章!