gpt4 book ai didi

mysql - 我如何分组和 "prefer"一行

转载 作者:行者123 更新时间:2023-11-29 00:22:30 25 4
gpt4 key购买 nike

我只是想有一个 SQL 语句来 GROUP BY,但是我希望它尝试选择一行(如果该行可用)。

例如,我有这样的语句:

SELECT *
FROM `translations`
WHERE `lang` = "pl" OR `lang` = "en"
GROUP BY `key`

在这个语句中,我试图选择所有 langpl 的地方,如果没有,只得到 en 结果等效 pl 行的结果。

key 是在多个 lang 上相同的列。

但是,如果我运行上面的语句,所有结果都将在 langen 的位置,我理解为什么会这样,但这不是我的行为想要,但我不确定如何调整它。

我知道如何以编程方式执行此操作,但我认为仅使用 SQL 会更整洁。

最佳答案

您可以将其表述为 union all 语句。我的假设是 key,lang 对唯一标识一行(否则你仍然可以执行 group by 以获得每个键一行) .

想法是用lang = 'pl' 选择所有行。然后选择 lang = 'en''pl' 没有对应行的相同键的行:

SELECT *
FROM translations
WHERE lang = 'pl'
union all
SELECT *
FROM translations
WHERE lang = 'en' and
`key` not in (select `key` from translations where lang = 'pl')

关于mysql - 我如何分组和 "prefer"一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20595540/

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