categoryという名前の単純なDBテーブルの1つがあります:
category.id category.name category.lang
1 'apple' 'en'
1 'manzana' 'es'
1 '' 'de'
1 '' 'it'
変数:
$default_lang = 'en';
$current_lang = 'it';
$ current_langに従ってcategory_nameフィールドを返すクエリを作成したいのですが、category.nameが空の場合は、次のように$default_langのcategory.nameを使用する必要があります。
SELECT * FROM cat_list
LEFT JOIN category ON cal_list.id = category.id
AND IF(category.name = $current_lang = '', $default_lang, 'No Lang')
このクエリを修正して機能させるにはどうすればよいですか?
===
さて、私は良いアイデアを持っています:
SELECT * FROM cat_list LEFT JOIN category
ON cal_list.id = category.id
AND category_lang IN ($curreng_lang, $default_lang)
AND category_name <> ''
正常に動作しますが、両方の言語に名前の値がある場合の「IN」の順序について心配する必要がありますか?