mysql中having用法,mysql5.6 排序失效_mysql 使用union(all) + order by 導致排序失效

 2023-10-04 阅读 27 评论 0

摘要:1、SQL1如下mysql中having用法?SELECTaa.*groupby后排序?FROMapas_smoke aaWHERESTATUS = 0AND aa.area_id = 'd61523dda339441f80008634c6b91f60'AND aa.type = '3'AND to_days( create_time ) = to_days(now())ORDER BYCAST( aa.smoke_nu

1、SQL1如下

mysql中having用法?SELECT

aa.*

groupby后排序?FROM

apas_smoke aa

WHERE

STATUS = 0

AND aa.area_id = 'd61523dda339441f80008634c6b91f60'

AND aa.type = '3'

AND to_days( create_time ) = to_days(

now())

ORDER BY

CAST( aa.smoke_number AS UNSIGNED ) ASC

查詢結果如下,smoke_number 順序為3,4

7f35ec0ae5d3cca251161e5ab7d24ba0.png

2、sql2如下:

SELECT

bb.*

FROM

apas_smoke bb

WHERE

bb.STATUS = 0

AND bb.area_id = 'd61523dda339441f80008634c6b91f60'

AND bb.type = '1'

AND to_days( create_time ) = to_days(

now())

ORDER BY

CAST( bb.smoke_number AS UNSIGNED ) ASC

查詢結果如下,smoke_number順序為1,2

5bd8d9bf4e2531d683235c4465e184da.png

3、但是當使用UNION后,SQL如下

( SELECT

aa.*

FROM

apas_smoke aa

WHERE

STATUS = 0

AND aa.area_id = 'd61523dda339441f80008634c6b91f60'

AND aa.type = '3'

AND to_days( create_time ) = to_days(

now())

ORDER BY

CAST( aa.smoke_number AS UNSIGNED ) ASC

) UNION

(

SELECT

bb.*

FROM

apas_smoke bb

WHERE

bb.STATUS = 0

AND bb.area_id = 'd61523dda339441f80008634c6b91f60'

AND bb.type = '1'

AND to_days( create_time ) = to_days(

now())

ORDER BY

CAST( bb.smoke_number AS UNSIGNED ) ASC

)

查詢結果,如下,smoke_number順序與3,4,2,1? 與預期的順序? 3,4,1,2不一致。

d93f0f918f946298b862ea0e1e43d71f.png

**原因:union(all)會使order by失效,解決辦法,加limit

4、最終SQL

(

SELECT

aa.*

FROM

apas_smoke aa

WHERE

STATUS = 0

AND aa.area_id = 'd61523dda339441f80008634c6b91f60'

AND aa.type = '3'

AND to_days( create_time ) = to_days(

now())

ORDER BY

CAST( aa.smoke_number AS UNSIGNED ) ASC

LIMIT 2

)

UNION

( SELECT

bb.*

FROM

apas_smoke bb

WHERE

bb.STATUS = 0

AND bb.area_id = 'd61523dda339441f80008634c6b91f60'

AND bb.type = '1'

AND to_days( create_time ) = to_days(

now())

ORDER BY

CAST( bb.smoke_number AS UNSIGNED ) ASC

LIMIT 2

)

查詢結果:

c5acca64e5a87e0bb8e9bbeba2b221ac.png

問題解決。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/113364.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息