我有簡單的數據庫表中的一個名爲類別:MySQL的SELECT + LEFT JOIN + IF查詢
category.id category.name category.lang
1 'apple' 'en'
1 'manzana' 'es'
1 '' 'de'
1 '' 'it'
變量:
$default_lang = 'en';
$current_lang = 'it';
我想提出的查詢,根據$返回CATEGORY_NAME場current_lang,但如果category.name是空的,則應該使用category.name從$ default_lang這樣的:
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」命令,如果這兩種語言有名稱值?
請詳細說明更使用戶可以更容易明白只有代碼的答案是不回答 –
Patriks一個很好的方法,它可以實現它而不選擇在SELECT?因爲表類別有大約80萬行:( –