记一个问题,有缘再解释。解决办法其实就是order by指明唯一确定的字段 如order by id,或者改为右链接或者第二张表作为主表。此处是想知道MYSQL底层排序原理,为何会出现1的情况。
1.数据库联表查询,用第二张表的独有字段排序时,乱序
SELECT
id,
name,
type,
cts.hot
FROM
CT ct
LEFT JOIN CTS cts ON cts.topic_id = ct.id
ORDER BY
cts.hot ASC
当排序的条件一样时,为何会以此种顺序显示,且不会出现多次搜索排序结果不一致的情况,说明时一种内在的默认排序规则,那是什么规则呢?磁盘读取顺序?
如果改为右链接或者第二张表作为主表。则按照id顺序排列。
SELECT
id,
name,
type,
cts.hot
FROM
CT ct
RIGHT JOIN CTS cts ON cts.topic_id = ct.id
ORDER BY
cts.hot ASC