gpt4 book ai didi

mysql - 首先按特定字段值排序

转载 作者:IT老高 更新时间:2023-10-28 12:53:29 26 4
gpt4 key购买 nike

我有一个包含 3 列的表格:

id | name | priority
--------------------
1 | core | 10
2 | core | 9
3 | other | 8
4 | board | 7
5 | board | 6
6 | core | 4

我想使用 priority 对结果集进行排序,但首先是那些具有 name=core 的行,即使优先级较低。结果应该是这样的

id | name | priority
--------------------
6 | core | 4
2 | core | 9
1 | core | 10
5 | board | 6
4 | board | 7
3 | other | 8

最佳答案

还有MySQL FIELD function .

如果您想对所有可能的值进行完整排序:

SELECT id, name, priority
FROM mytable
ORDER BY FIELD(name, "core", "board", "other")

如果您只关心“核心”是第一位的,而其他值无关紧要:

SELECT id, name, priority
FROM mytable
ORDER BY FIELD(name, "core") DESC

如果要先按“核心”排序,其他字段按正常排序:

SELECT id, name, priority
FROM mytable
ORDER BY FIELD(name, "core") DESC, priority

这里有一些警告:

首先,我很确定这是 mysql 独有的功能 - 问题被标记为 mysql,但你永远不知道。

其次,注意FIELD()是如何工作的:它返回值的从1开始的索引——在FIELD(priority, "core"),如果 "core"是值,它将返回 1。如果该字段的值不在列表中,则返回。这就是为什么需要 DESC 的原因,除非您指定所有可能的值。

关于mysql - 首先按特定字段值排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14104055/

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