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中文网其他相关文章!