mysql 多重排序数据顺序可能不固定

原创
2018/12/30 14:54
阅读数 200

今天遇到了一个很奇怪的问题,就是测试和我说,怎么列表显示的数据 有时候 顺序不一致的? 这种情况偶尔出现,有时候又是固定的顺序了。

我试了一下,发现果然如此。 

看了看代码,是有多重排序,但是 应该是 按照 固定顺序的啊。不会这么坑吧。还好 不是非常严格要求顺序显示。

但是 这个问题,我还是想找到是为什么?

会不会是json 拼接,解析的时候,顺序搞乱了? 

可是 发现 只是相同的 排序的结果 数据会出现而已。

比如 按照 身高和年龄排序出来了  2条数据,a,b  (a和b的身高和年龄都是一样的,之前其他不一样,比如id肯定不一样)

查询出来的显示的结果,可能是 a,b 这些, 也可能是  b,a 这样的。

也是涨姿势了

百度了一下 

参考 https://blog.csdn.net/u012516166/article/details/78292385

参考  https://www.cnblogs.com/hulkCoder/p/5978961.html

好吧。 看了一下 SQL, 果然是没有 在最后指定id排序的方式。

 

于是加上之后发现果然没有这个问题

例子:


SELECT a.id,a.sale_price
	from gwqmshop_goods_warehouse a , gwqmshop_goods g , gwqmshop_goodsclass c
	where   g.id=a.goods_id  and c.id=g.gc_id 
  and a.goods_inventory >0 
	and g.goods_store_id=7
	 and g.goods_status=0 
  and g.ugc_id is not null 
  ORDER BY c.sequence asc ,g.goods_outurl asc, g.specification_thickness asc,
   a.sale_price asc, g.specification_width asc,a.id asc;


###在最后默认指定 a.id asc 排序之后,查询的结果就是一致了

 

 

 

 

 

 

 

 

 

 

 

 

 

 

展开阅读全文
打赏
0
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
0
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部