gpt4 book ai didi

mysql - 按特定内容的存在对结果排序

转载 作者:行者123 更新时间:2023-11-30 00:58:51 26 4
gpt4 key购买 nike

我有一个 mysql 表,其中包含带有 ID、语言和文本的条目。总是有一个 ID-语言对,但可以有更多 ID,因此如下:

id | language | translation
---+----------+------------
0 | en | Submit
0 | cs | Odeslat
0 | fr | Démarrer
1 | fr | Jour
1 | en | Day
2 | fr | Lundi
2 | cs | Pondělí

我不想按id选择翻译并对结果进行排序:

  1. 语言 = 用户定义的语言
  2. 语言 = 'en'

这样,如果有一行包含用户语言,它将首先返回(并且只有一个,因为我使用LIMIT)。如果不存在,则将返回英文行(如果存在)。否则没关系。

这是我尝试过的:

SELECT translation FROM `entries` WHERE id=1 ORDER BY language='cs' DESC, language='en' DESC LIMIT 1

我在排序中使用了 DESC,因为我假设 language='cs' 对于所需的行返回 1,对于不需要的行返回 0。

最佳答案

尝试 CASE 表达式

SELECT *
FROM `entries`
WHERE id = 1
ORDER BY
CASE WHEN language='cs' THEN 1
WHEN language='en' THEN 2
ELSE 3
END

关于mysql - 按特定内容的存在对结果排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20316130/

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