我有一张语言表.
我想创建一个查询,获取具有指定语言的行,但如果它不会返回任何数据 – 使用默认语言.
这可以在一个查询中执行吗?
更新:
我的表:语言
领域:
id – (主键,唯一),
郎 – (文字,不是唯一的),
内容 – (文字,不是唯一的).
我目前的查询是:
SELECT * FROM Languages WHERE (id='1') AND (lang = 'es')
正如我前面提到的,如果上面的查询不会返回任何内容,我希望从默认语言中获得结果:
SELECT * FROM Languages WHERE (id='1') AND (lang = 'en')
‘en’是此示例中的默认语言.
解决方法:
像这样的东西:
(SELECT CASE
WHEN ((SELECT ID FROM table WHERE language = specified language) IS NULL)
THEN
default language
ELSE
specified language
END);
它将根据子查询的结果返回所需的语言.将其插入最终查询的WHERE子句中.