MySQL - 使用 LIMIT 更新查询

我想更新表中从 1001 到下一个 1000 的行。

我尝试了以下查询:

UPDATE `oltp_db`.`users` SET p_id = 3 LIMIT 1001, 1000
  1. 这给了我语法错误。这个对吗?我在这里做错了吗?
  2. 我们可以这样限制更新吗?

此外,我尝试更新的行对于数据类型为 INTEGER 的列 p_id 具有 Null 值。因此,我什至无法使用以下查询进行更新:

UPDATE `oltp_db`.`users` SET p_id = 3 WHERE p_id = null
  1. 我上面的查询是否正确?
  2. 可以做些什么来实现这一目标?

最佳答案

如果你想在 MySQL 中使用 limit 更新多行,你可以使用这个构造:

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
)

https://stackoverflow.com/questions/6289729/

相关文章:

mysql - 在 MySQL 中计算运行总计

mysql - 将 MySQL 命令行结果的输出格式更改为 CSV

mysql - MySQL可以拆分列吗?

mysql - 如何向现有表添加唯一键(具有非唯一行)

MySQL my.cnf 文件 - 找到没有前面组的选项

mysql - mysql中autoincrement能产生的最大ID号是多少

mysql - 从另一列计算的列?

mysql - 从mysql中的表中删除所有记录

sql - 使用 GROUP BY 查询获取行数

mysql - 如何在 Amazon RDS 数据库服务器实例上运行命令 "mysqladmin f