首页 > 数据库 > mysql教程 > 如何使用LIMIT正确更新MySQL中的特定行数?

如何使用LIMIT正确更新MySQL中的特定行数?

DDD
发布: 2024-12-05 06:20:10
原创
192 人浏览过

How Can I Correctly Update a Specific Number of Rows in MySQL Using LIMIT?

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板