首页 > 解决方案 > 如何将列中的结果放在结果的顶部?

问题描述

我有这个sql:

SELECT x, y FROM table WHERE x = 'a' OR y = 'a'

结果将显示如下内容:

注意:下面的字母代表从列返回的值xy

a = x

b = y

a
b
b
a
b

我想先从列中获取结果x。像这样:

a
a
b
b
b

可能吗?我发现的唯一方法是为两个列创建两个 sql,然后使用UNION;

标签: mysqlsqldatabase

解决方案


您可以在中使用条件逻辑group by

SELECT x, y
FROM table
WHERE x = 'a' OR y = 'a'
ORDER BY (x = 'a') DESC;

MySQL 将布尔值视为整数,分别0为 false 和1true。因此DESC,真正的价值是第一位的。


推荐阅读