我试图通过提交下拉框(其名称分配给 PHP 变量 $position)更新一个项目的位置后,根据他们的位置重新排序列表。这是一个示例,位置由它们在列表中的顺序表示:
- 项目1
- 项目2
- 第 3 项
- 项目4
- 项目5
我正在使用以下 MySQL 查询:
UPDATE subjects SET
position = position + 1
WHERE position <= position AND position >= {$position};
如果我要将 Item5 移动到位置 2,则此查询会将位置 2 到 4 的所有内容向下推一个位置,从而导致:
- 项目1
- 第5项<<<向上移动
- 项目2
- 第 3 项
- 项目4
但是,如果我希望做相反的事情并向下移动一个项目,则位置需要减少一个(位置 = 位置 - 1),并且 <= 和 >= 符号将交换。因此,我想知道如何在 case 参数中执行此操作(相当于 if{} else if{})