mysql - PHP单查询多个UPDATE影响AUTO_INCRMENT id而不是order_id

标签 mysql

这是我的 super 简单的表格布局...

id | order

1 | 1

2 | 2

我一直在尝试使用单个查询更新两个条目的顺序,但我的查询测试似乎不断更新 auto_increment id 字段。

我的目标是在单个查询中使 id1 = order 2 和 id2 = order1。我的查询做错了什么?

UPDATE forms
SET order = CASE id 
WHEN 1 THEN 2 
WHEN 2 THEN 1 
END 
WHERE id IN (1,2);

最佳答案

JOIN怎么样?

UPDATE  Tablename AS a
        INNER JOIN Tablename AS b 
            ON  a.id = 1 AND b.id = 2
SET     a.order = b.order,
        b.order = a.order

关于mysql - PHP单查询多个UPDATE影响AUTO_INCRMENT id而不是order_id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16783210/

相关文章:

javascript - Node JS mysql数据库断开连接

php - 在检查阿拉伯语或英语值之前用替换单词更新表中的行

mysql - 奇怪的Mysql innoDB索引问题

php - 多个复选框值未插入 MySQL 列中

php - 在查询中不使用空格和短表别名有什么好处吗?

mySQL存储过程where子句问题

php - 使用PHP PDO动态查询Mysql并在Select中使用%

mysql - 如何在两列上设置唯一键并在 MySQL 中仍然具有自动递增的主索引?

php - UTF-8贯穿始终

mysql - 如何在MySQL select语句中实现If else条件