我有下表:
+------+---------+--------+
| lang | title | url |
+------+---------+--------+
| pt | Livro 1 | o294jl |
| en | Book 1 | o294jl |
| en | Book 2 | 7s621f |
+------+---------+--------+
我需要分清轻重缓急 lang
当特定语言是系统语言时。例如,假设我与 pt
语言,我需要一个返回以下内容的查询:
+------+---------+--------+
| lang | title | url |
+------+---------+--------+
| pt | Livro 1 | o294jl |
| en | Book 2 | 7s621f |
+------+---------+--------+
基本上我需要为 title
, lang
等 GROUP BY url
正在使用。目前基本上是最低的 id
作为一个值:
SELECT lang, title, url
FROM book
GROUP BY book.url
我试过用 ORDER BY
与 CASE
条款,但当它在 GROUP BY
手术,没用。我可以用 GROUP_CONCAT
与 IF
选择正确的值,但由于我的实际表有多个列,它看起来不正常。
谢谢。
1条答案
按热度按时间gmxoilav1#
对于您的情况,假设您知道在整个应用程序中只有两种类型的lang,即“pt”和“en”。你可以简单地用
order by lang desc
.这是样品
但是,如果将来可能会有更多类型的lang,并且可能需要按特定的lang排序,我建议您再添加一个表来保存lang的priority值。因此,您可以按优先级排序,以获得应该首先出现的lang。
这是样品