mysql - 获取一行,然后其他人按id排序

标签 mysql sql

如何获取特定行 (id=x) 然后是提醒?像这样的东西:

SELECT * FROM table ORDER BY id=5 FIRST THAN id DESC

我尝试使用 UNION ALL,例如:

(SELECT * FROM table WHERE id=5) 
 UNION ALL 
(SELECT * FROM table WHERE id!=5 ORDER BY id DESC)

但结果出乎意料,因为第二个 SELECT 不返回按 id (desc) 排序的寄存器。另外,用这种方式写得更多。

最佳答案

SELECT * FROM table ORDER BY id = 5 DESC, id ASC

这会给你类似的东西:5, 1, 2, 3, 4, 6, 7, ...

关于mysql - 获取一行,然后其他人按id排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14689238/

相关文章:

mysql - 如何规范化具有逗号分隔值的列

MySQL 多个日期分组

java - datetime 和 tinyint 的数据类型查询

php - 内连接可以在单个 mysql 查询中与 RIGHT 或 LEFT Join 一起有效使用吗

mysql - 使用 auto_increment 填充表的最有效方法

python - Sam 本地的 mysql 数据库连接

sql - Service Broker 消息处理顺序

sql - 插入条件常量

mysql - 在 SQL 中索引列或创建新表是否更有效?

sql - sql right join的区分结果