mysql - 获取具有 ID 的所有记录,但第一条记录也应匹配另一个条件

标签 mysql sql sql-order-by

我正在从数据库中获取属于某个电台组的所有电台。 从 station_group_id = 1 的电台中选择*

现在,从所有获取的结果中,我希望某些结果首先出现(例如,line_id = 2 的车站首先出现)。例如,如果这是我的 stations 表:

id | station_group_id | line_id
-------------------------------
1  |                1 |       1
2  |                1 |       2
3  |                1 |       3

我希望输出是:

id | station_group_id | line_id
-------------------------------
1  |                1 |       2
2  |                1 |       1
3  |                1 |       3

因此 line_id = 2 是输出中的第一条记录。

我考虑过使用ORDER BY,但这不完全是一个顺序问题,它更多的是一个“偏好”问题。

那么,是否可以根据条件(最好是在一个查询中)在输出之上放置一些记录?谢谢!

最佳答案

尝试以下:

SELECT * FROM stations 
WHERE station_group_id = 1 
ORDER BY if(line_id in('2','X','Y','Z'),0,1)

关于mysql - 获取具有 ID 的所有记录,但第一条记录也应匹配另一个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9353650/

相关文章:

mysql - 对数据进行排序会产生列而不是行

Mysql子查询顺序

mySQL 坚持使用全文搜索还是选择其他方法?

使用 name.co.uk 或 name-something.co.uk 时的 MySQL ORDER BY

javascript - 动态下拉菜单 Node js

mySQL 的 Java Applet 问题

sql - 我如何编写一个sql查询来查找其中一列是另一列的子字符串的行

SQL Server (TSQL) - 是否可以并行执行语句?

sql - 如何跨中间表连接的三个表进行查询?

MySQL - COUNT 和 ORDER BY 在大型表上性能非常慢