我做了这个查询:
SELECT
COALESCE(
(SELECT *
FROM JournalEntryTitleAndContent jetc
WHERE jetc.language_id = 2
AND jetc.journalentry_id = 1 LIMIT 1),
(SELECT *
FROM JournalEntryTitleAndContent jetc
WHERE jetc.language_id = 1
AND jetc.journalentry_id = 1 LIMIT 1),
(SELECT *
FROM JournalEntryTitleAndContent jetc
WHERE jetc.journalentry_id = 1 LIMIT 1)
)
其目的是检查是否存在具有 language_id 2 的行(那是首选语言)。如果不存在,则合并应尝试查找具有 id 1 的 fallbacklanguage 的行,如果它也返回 null,那么它应该返回它可以找到的第一行 journalentry_id = 1。
当我在工作台中执行此语句时,我得到Error Code 1241: Operand should contain 1 column(s)
我不能从合并中返回一行作为单个值吗?如果不是,我应该用什么代替呢?我应该使用CASE
还是IFNULL()
代替?
谢谢
1 个回答