Heim  >  Artikel  >  Backend-Entwicklung  >  MySQL中排序字段值相等时 默认排序是什么逻辑

MySQL中排序字段值相等时 默认排序是什么逻辑

WBOY
WBOYOriginal
2016-06-06 20:32:001377Durchsuche

由于业务需求在产品表中增加了几个排序字段。但是默认排序字段(sort)的值是0

然后用了几天以后有些产品的字段值运营已经在后台设置了sort值,但是剩下的那些sort值还是0的产品当检索的时候是按怎样的逻辑进行排序的?
PS:auto_id是主键 id是php随机生成的产品唯一号

<code>SELECT id,title,auto_id,web_sort FROM `route` WHERE class = 2 AND `status` = 1 AND product_library = 0 ORDER BY web_sort DESC;
</code>

MySQL中排序字段值相等时 默认排序是什么逻辑

回复内容:

由于业务需求在产品表中增加了几个排序字段。但是默认排序字段(sort)的值是0

然后用了几天以后有些产品的字段值运营已经在后台设置了sort值,但是剩下的那些sort值还是0的产品当检索的时候是按怎样的逻辑进行排序的?
PS:auto_id是主键 id是php随机生成的产品唯一号

<code>SELECT id,title,auto_id,web_sort FROM `route` WHERE class = 2 AND `status` = 1 AND product_library = 0 ORDER BY web_sort DESC;
</code>

MySQL中排序字段值相等时 默认排序是什么逻辑

按理说应该是根据主键的顺序,因为这个表中数据的物理顺序,查询一般都是按顺序在遍历表的。但是很奇怪你的查询结果为什么是乱的,我本地试了一下都是主键顺序。

如果你真的需要一个特殊的第二排序要求,在查询语句中可以自己加上第二排序的规则。例如以auto_id的ASC为序:

<code>SELECT id,title,auto_id,web_sort FROM `route` WHERE class = 2 AND `status` = 1 AND product_library = 0 ORDER BY web_sort DESC, auto_id ASC;
</code>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn