MySQL - 使用 LIMIT 更新查询

标签 mysql limit sql-update

我想更新表中从 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
)

关于MySQL - 使用 LIMIT 更新查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6289729/

相关文章:

Android 内部存储 - 有什么限制?

sql - 如何在修改并随后使用字段的情况下运行SQL UPDATE查询

scala - Spark Collect_list 并限制结果列表

php - Kohana PHP、ORM 和 MySQL BLOB

mysql - 用户文件数据库设计

mysql - 为什么我在尝试创建此表时不断收到外键错误?

c++ - 执行被信号 11 终止(可以通过违反内存限制触发)

mysql - 使用内部连接更新多个表中的列

sql-server - sql server UPDATE 与 INNER JOIN 与其自身相结合

php - 如何禁用严格的MySql?