mysql - 如何更新一系列行号的列?

标签 mysql sql

我需要更新“myTable”中第 5 到 10 行的“myColumn”列。我认为我可以执行以下操作,但显然它给了我一个语法错误:

UPDATE myTable SET myColumn = 'mamal'  LIMIT 5,10;

谢谢

最佳答案

SQL 表表示无序 集。如果您有主键,则可以使用它进行排序。

MySQL 确实允许限制,但不允许偏移,因此您可以更新前五行:

UPDATE myTable
    SET myColumn = 'mamal'
    ORDER BY id
    LIMIT 5;

但没有偏移量。

你可以通过 JOIN 来解决这个问题:

UPDATE mytable t JOIN
       (SELECT id
        FROM mytable tt
        ORDER BY id
        LIMIT 5, 10
       ) tt
       ON tt.id = t.id
    SET myColumn = 'mamal';

关于mysql - 如何更新一系列行号的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48313360/

相关文章:

mysql - 从具有父子关系的单表创建 mySQL 连接表

mysql - 将空值分配给查询中重复的匹配行

SQL 简单和替代?

php - 将基本表单发送到数据库

mysql - 为什么自然连接在以下情况下输出为空集?

mysql - 如何对我在 Wordpress 数据库中创建的自定义表进行 SQL 注入(inject)证明调用?

mysql - CakePHP 2 复合主键

sql - 在 T-SQL 中查找日期

mysql - 通过向现有值sql添加值来更新记录

php - 为什么我的查询没有定义该值?