解决union all 不能使用order by 的问题

根据mysql文档看到,union all 要比order by 的执行权限少所有使用不了排序

(select t1.goods_id  goods_id from 1dcq_goods t1 order by t1.goods_id )
UNION all

(select t2.goods_id  goods_id from 1dcq_goods t2 order by t2.goods_id desc )

如上sql语句,结果如下,可以看出是没有顺序的:

下面语句:

(select t1.goods_id  goods_id from 1dcq_goods t1 order by t1.goods_id limit 999999999 )
UNION all
(select t2.goods_id  goods_id from 1dcq_goods t2 order by t2.goods_id desc limit 999999999)

结果如下,可以看出是排序的,一个升序,一个降序,然后合并:

可见"limit"关键字不能少!

你可能感兴趣的:(数据库)