我想在更新單個項目的位置,例如更新項目從列表中的位置:MySQL的情況時將無法正常工作
- 物品1
- ITEM2
- 項目3
- ITEM4
- ITEM5
移動ITEM5位置2將更新列表:
- ITEM1
- ITEM5 < < 新位置
- ITEM2 < < [向下移動一個]
- 項目3 < < [向下移動一個]
- 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}然後使用WHERE子句作爲它現在的位置,但是如果位置> {$ position},我希望< =和> = swap (這將隨後允許移動位置時向上或向下的名單
你得到的錯誤是什麼? – Cfreak
我認爲它確實執行,但是他對迴應不滿意。至少,我是這麼讀的。 – Digitalis
數據庫查詢失敗:您的SQL語法出錯;檢查對應於您的MySQL服務器版本的手冊,以便在第3行的'CASE)WHERE position <= position AND position> = 1時使用正確的語法 – Justin