我正在尝试在更新单个项目的位置时更新列表中项目的位置,例如:
- 项目1
- 项目2
- 第 3 项
- 第 4 项
- 项目5
将 item5 移动到位置 2 会将列表更新为:
- 项目1
- item5 <<新位置
- item2 << [下移了一个]
- item3 << [下移了一个]
- item4 << [下移了一个]
.
UPDATE subjects SET
position = (CASE WHEN position < {$position} THEN position + 1
WHEN position > {$position} THEN position - 1 else position END CASE)
WHERE position <= position AND position >= {$position};
此 SQL 查询不起作用。但是我还想做的是 IF position < {$position} 然后将 WHERE 子句作为现在的样子,但是如果 position > {$position} 我想让 <= 和 >= 交换(这随后将允许在将位置向上或向下移动列表时进行更新