关于 MySQL,limit 1 的机制问题
出现的情景
以下有两条 sql 语句,第一条
SELECT * FROM g_1242_award where a_uid = 0 and a_start < 1576215393 and a_awardid in (3,4);
查询结果如下
另外一条
SELECT * FROM g_1242_award where a_uid = 0 and a_start < 1576215393 and a_awardid in (3,4) limit 1;
查询结果如下
可以看到,第一条 sql 查询出来的第一条数据,主键为 2
的数据!
为何增加 limit 1
条件后,会查询出主键为 20
的数据?
疑问
从查询出的数据来理解,加了 limit 条件之后,mysql 对 a_award_id
字段进行了排序,然后 取出了第一条数据!这是 mysql 底层做的处理吗?为何是这样的处理呢?
推荐文章: