在很多人都知道排序用ORDER BY 但是在复杂的排序的时候,就会发现 ORDER BY这个关键字怎么排序也满足不了需求了。 这时候就要说今天关键字了UNION ALL 了 ,很多人就不理解了,这不是对两个结果集进行并集,

排序规则:优先展示
1.age<18
2. sex =0
3.按照名字排序
( SELECT i.*,1 AS sort FROM info AS i WHERE age < 18 AND sex = 0 ORDER BY convert('name' using gbk) asc LIMIT 999999)
UNION ALL
(SELECT i.*,2 AS sort FROM info AS i WHERE age < 18 AND sex = 1 ORDER BY convert('name' using gbk) asc LIMIT 999999)
UNION ALL
(SELECT i.*,3 AS sort FROM info AS i WHERE age > 18 AND sex = 0 ORDER BY convert('name' using gbk) asc LIMIT 999999)
UNION ALL
(SELECT i.*,4 AS sort FROM info AS i WHERE age > 18 AND sex = 1 ORDER BY convert('name' using gbk) asc LIMIT 999999) 
版权声明:本文为m0_64862907原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。