メニュー構造のカテゴリと注文IDに基づいて、データベース内のテーブルを並べ替えようとしています。
これは私がテーブル構造として大まかに持っているものです
menuid menuname order categoryid -------------------------------------- 1最初のアイテム11 2秒アイテム21 33番目のアイテム12 44番目のアイテム22
私はこの構文を試しました:
UPDATE yourtable SET id=IF(id=2, 3, 2) where id in(2,3)
このような:
UPDATE menu
SET order = IF(order = `3`, `2`, `3`)
WHERE order = `3`
このエラーが発生します:
SQL構文にエラーがあります。あなたに対応するマニュアルを確認してください 'order = IF(order = `3`、` 2`、 `3`)の近くで使用する正しい構文のMySQLサーバーのバージョン WHERE order =`3`'2行目
ソリューションコード:
UPDATE menu
SET `order` = case when `order` = 3 then 2 else 3 end
WHERE `order` = 3 AND section = 2 OR `order` = 2 AND section = 2