リレーショナル テーブルの 1 つのフィールドを更新しようとしています。問題のテーブルは、ユーザーとスキルの関係テーブルです。更新しようとしているフィールドは、熟練度フィールドです。
スキルの名前をキー、習熟度を値とする PHP の配列があります。
これが私が実行しているSQLステートメントです。
UPDATE rus
SET proficiency = CASE
WHEN ls.name = 'Objective-C' THEN 'Beginner'
END
FROM rel_users_li_skills rus INNER JOIN li_skills ls ON ls.id = rus.skill_id
WHERE rus.user_id = 3852
WHEN ls.name = 'skill-name' THEN 'proficiency'
CASE ステートメントに余分なステートメントを追加するために、PHP 配列が列挙されます。
私が抱えている問題は次のとおりです。
MySQL サーバーのバージョンに対応するマニュアルで、1 行目の「FROM rel_users_li_skills rus INNER JOIN li_skills ls ON ls.id = rus.skill_id WHE」付近で使用する正しい構文を確認してください
私はこれに困惑しています。同じ構文を使用しているようで、問題がないように思われるSOの投稿とフォーラムをすでにいくつか見つけました。