我有语言表情况下,MySQL在哪儿查询
表
lan_dish_id。| lan_dish_lang | lan_dish_dishid | lan_dish_mainlang
--------------- | ------------------- | --------------------- | ------------------------
| NL | 8 | 1
| FR | 8 | 0
我需要检查$_SESSION['lang']
中的语言是否在表中可用,否则它必须采用主语言。
不幸的是,当运行下面的查询时,他返回带有FR的行以及NL als lan_dish_lan ...在这种情况下,它只能返回带有FR的行。
SELECT * FROM `language_dish` WHERE
(CASE
WHEN lan_dish_lang = "fr"
THEN lan_dish_lang = "fr"
ELSE lan_dish_mainlang = 1
END) AND lan_dish_dishid = 8
你问[同样的问题,用不同的标题(https://stackoverflow.com/questions/46511749/using-case-in-where-clause) 3小时前 – Mawg
当case语句在where子句中满足时,Sql不会停止读取行,并且您的where子句对两个行的计算结果都为true,则返回两行。 –