mysql - 如何首先按 id 获取特定行,然后按特定列按字母顺序对其余行进行排序

标签 mysql sql database

我试图在检索数据时将特定的 ID (53) 排在第一位,然后再 title按字母顺序排列。我在这里找到了一些答案,但没有一个是我正在寻找的。

目前这是我的查询:

SELECT * 
FROM snm_categories 
WHERE parent_id = ".$conn->real_escape_string($getcat['id'])." 
AND published = 1  
ORDER BY CASE WHEN id = 53 THEN 0 ELSE 1 END, id, title

这正确显示了 id 53 的第一个结果,但其余项目未按 title 按字母顺序排序。 。我该怎么做?

最佳答案

ORDER BY CASE WHEN id = 53 THEN 0 ELSE 1 END, title, id, 

您必须更改字段的顺序。首先在 id 列之前写入标题列。这很重要。

关于mysql - 如何首先按 id 获取特定行,然后按特定列按字母顺序对其余行进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57053524/

相关文章:

用于选择未引用行的 SQL 查询

mysql - MySql <> NULL 和 IS NOT NULL 之间的区别

mysql - 设置master数据库来控制其他数据库的结构

sql - PL/SQL 触发器 : can't create apex user

java - 监听 Mysql 表变化事件,for java

mysql - 仅返回最大值小于指定值的行

mysql - 我正在尝试使用 MySQL NOT IN 命令,但无济于事,有人能指出我的语法中的错误吗?

mysql - 删除所有旧条目

php - mysql查询中的mysql查询

mysql - 从具有包含相似数据的多列的表中选择唯一值