MySQL 按 3 列排序

标签 mysql sql

每次刷新我都会得到随机的“结果”:我不知道为什么......

SELECT  `area`,`subarea1`,`subarea2`
FROM (
    SELECT * 
    FROM users_activa_mutua_analitics
    ORDER BY `area`  ASC 
    LIMIT 100
) AS sub
ORDER BY `subarea1`  IS NOT NULL ASC, `subarea2`  IS NOT NULL ASC
LIMIT 5

我需要订购此表格:

(area) (subarea1) (subarea2)
1           1          1
            1          1
            1          1
                       1
2           2          2
            2          2
            2          2
                       2
""          ""         ""   

最佳答案

不确定您的问题中是否有足够的数据,但阅读字里行间,我已经创建了一个我认为您想要的 SQLFiddle:SQLFiddle如果这是正确的,那么您不需要子查询

    SELECT area, subarea1, subarea2
    FROM users_activa_mutua_analitics
    ORDER BY subarea2 ASC,
        subarea1 IS NULL ASC,
        area IS NULL ASC

关于MySQL 按 3 列排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35206280/

相关文章:

java - 设置 setMaxResults 时 JPA 查询速度极慢

sql - 使用if logic oracle sql检查约束

php - Codeigniter 和 doctrine 连接三个表

mysql - 表示 er 图中 sql/mysql 的全部部分参与

sql - 选择id为偶数的行

mysql - 使用 substring_index MySQL 添加省略号

sql - 计算两个日期之间的第 90 个百分位数

php - 选择语句无法正常工作

mysql - 如何从mysql中的3个表中获取数据?

mysql - 使用 ID 列表更新多行