私の MySQL データベースでは、テーブルs_p
(id, name, prod_id) にデータを英語で保存し、別のテーブルs_p_l
(id,prod_id,name,locale) に製品のローカライズされた名前 (利用可能な場合) を保存します。
現時点で私が使用している
SELECT name FROM s_p_l WHERE prod_id=2 AND locale="de_DE";
最初に製品 #2 のローカライズされた名前があるかどうかを確認し、行が返されない場合は、
SELECT name FROM s_p WHERE prod_id=2;
英語名を取得します。
製品 ID とロケール、ローカライズされた製品名と英語の製品名をフォールバックとして指定すると、1 つのクエリで取得するにはどうすればよいですか?
(はい、SQL インジェクションを避けるために準備済みステートメントを使用しています)