ホームページ  >  記事  >  バックエンド開発  >  MySQL中排序字段值相等时 默认排序是什么逻辑

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

WBOY
WBOYオリジナル
2016-06-06 20:32:001329ブラウズ

由于业务需求在产品表中增加了几个排序字段。但是默认排序字段(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>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。