PHP + MySQL - 排序查询

标签 php mysql sql sorting

我有一个表,其中的一列可以包含:“kldr”、“bgg”或一个整数。

现在我想要一个查询,其结果按以下顺序排列:

 1. kldr 
 2. kldr 
 3. bgg 
 4. bgg 
 5. 1  
 6. 2 
 7. 3
 8. etc.

谁能帮帮我吗?我当前的查询显然不起作用。

SELECT * 
FROM table 
WHERE column_x='$value_x' 
ORDER BY column_y LIKE '%kldr%' ASC, LIKE '%bgg%' ASC, floor ASC

最佳答案

您可以在 ORDER BY 子句中使用 CASE 表达式:

SELECT * 
FROM table 
WHERE column_x='$value_x' 
ORDER BY CASE WHEN column_y LIKE '%kldr%' THEN 1
              WHEN column_y LIKE '%bgg%' THEN 2
              ELSE column_y + 2
         END

关于PHP + MySQL - 排序查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35313408/

相关文章:

javascript - 使用PHP将表数据保存为CSV格式

php - 为什么空格会在 PHP 中导致 fatal error ?

mysql - SQL中对2个聚合字段进行操作

php - 插入查询不起作用,如果和其他两个循环都在执行

php - php中可以通过SID加载 session 吗?

php - 检测某个属性是否已被 laravel 或数据库截断?

php - 逆 PHP mysql_fetch_array

sql - 使用列名称取消透视

具有不同表名且仅特定列的 MySQL 复制

java - 具有相同列名的命名查询内连接表的重复数据/值