首页 > 解决方案 > 重新排列行顺序查询仅在行数为奇数时有效

问题描述

我有一个表,其中包含数据库中的行,我想一个一个地向上或向下移动。

当总行数为奇数时,我当前的查询运行良好,但当行数为偶数时,所有查询都不起作用。

例如,我有一个名为 questions 的表和一个名为 question_order 的列来更改位置。对于问题 2,我有这个查询:

上移按钮:

UPDATE questions
      SET    `question_order`=(CASE `question_order` WHEN 2 THEN 1 ELSE 2 END)
      WHERE  `question_order`=1 OR `question_order`=2

下移按钮:

UPDATE questions
      SET    `question_order`=(CASE `question_order` WHEN 2 THEN 3 ELSE 2 END)
      WHERE  `question_order`=2 OR `question_order`=3

当我有奇数行时,例如表中的 5 个问题,它可以工作。

如果我有一个偶数,比如 6 个问题,则根本没有查询。

有谁知道为什么我的查询只在我有奇数行时才有效?

标签: mysql

解决方案


推荐阅读