为啥在mysql中第一个union两个子句的order by不起作用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥在mysql中第一个union两个子句的order by不起作用相关的知识,希望对你有一定的参考价值。
参考技术A union 是去前后两个结果集的并集且取出重复项, 只需要最后order by排序结果就行了,在前面结果1的排序 UNION 结果2的排序 UNION 结果三的排序。 可以直接吧所有表结果并在一起,然后排序. 你可以试试,应该结果一样本回答被提问者和网友采纳 参考技术B 莫有为什么这是mysql语法的一部分,如果在union 中使用order by 必须同时加上limit 子句。 参考技术C 如果在union 中使用order by 必须同时加上limit 子句 参考技术D 因为顺序问题 所有没反应 你妹的吻MYSQL union 和union all 用法 /
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。去重,操作符选取不同的值
UNION ALL 顾名思义 unionall 显示全部 UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。
-- 案卷总数
SELECT
count( t.id ) AS tiaoshu
FROM
grid_case_his t
WHERE
t.BELONG_TOWN LIKE CONCAT_WS( '111', '', '%' ) UNION ALL-- 立案数
SELECT
count( l.id ) AS tiaoshu
FROM
grid_case_his l
WHERE
l.CASE_REGISTE_TIME > 0
AND l.BELONG_TOWN LIKE CONCAT_WS( '111', '', '%' ) UNION ALL-- 结案数
SELECT
count( j.id ) AS tiaoshu
FROM
grid_case_his j
WHERE
j.CASE_STATUS = 'case_status_logoff'
AND j.BELONG_TOWN LIKE CONCAT_WS( '111', '', '%' ) UNION ALL-- 返工数
SELECT
count( d.id ) AS tiaoshu
FROM
grid_case_his d
WHERE
d.CASE_STATUS = 'case_status_rebut'
AND d.BELONG_TOWN LIKE CONCAT_WS( '111', '', '%' ) UNION ALL-- 在办
SELECT
count( k.id ) AS tiaoshu
FROM
grid_case_his k
WHERE
k.`CASE_STATUS` != 'case_status_logoff'
AND k.BELONG_TOWN LIKE CONCAT_WS( '111', '', '%' ) UNION ALL-- 超期案件
SELECT
count( v.id ) AS tiaoshu
FROM
grid_case_his v
WHERE
v.`CASE_STATUS` != 'case_status_logoff'
AND CURDATE() > v.CASE_LIMIT_TIME
AND v.BELONG_TOWN LIKE CONCAT_WS( '111', '', '%' )
LIMIT 1000
CURDATE() > v.CASE_LIMIT_TIME
CURDATE() : 当前时间
CONCAT_WS :字符串拼接 类似于 like 111% 以111开头的
可参考W3C
以上是关于为啥在mysql中第一个union两个子句的order by不起作用的主要内容,如果未能解决你的问题,请参考以下文章