gpt4 book ai didi

sql - MySQL,如果列等于,则选择行?否则选择使用默认值

转载 作者:行者123 更新时间:2023-11-29 02:36:25 28 4
gpt4 key购买 nike

有一个选项表,我正在尝试使用英语默认值(languageID 1)制作多语言。

表格:

 optionID   optionName  optionValue  languageID  
-----------------------------------------------
1 opt1 Language 1-1
2 opt1 Language 2-2
3 opt2 Language 1-1

查询:

SELECT t3.optionName, 
t3.optionValue
FROM (SELECT t2.optionName,
t2.optionValue
FROM tbl_options t2
WHERE t2.optionName IN ('opt1', 'opt2')
AND (t2.languageID = 2 OR t2.languageID = 1)
ORDER BY t2.languageID DESC) t3
GROUP BY t3.optionName

如果未找到匹配项,上述查询是否是根据默认为 1 的 languageID 检索行的最佳方法?只是想确保我不会过于复杂。

最佳答案

这基于英语是最低语言 ID 的假设:

select t.optionName, t.optionValue
from (
SELECT optionName, max(languageID) as MaxLanguageID
FROM tbl_options
WHERE optionName IN ('opt1', 'opt2')
AND languageID in (1, 2)
group by optionName
) tm
inner join tbl_options t on tm.optionName = t.optionName
and tm.MaxLanguageID = t.LanguageID
order by t.optionName

关于sql - MySQL,如果列等于,则选择行?否则选择使用默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4431330/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com