sql复杂排序

在很多人都知道排序用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版权协议,转载请附上原文出处链接和本声明。