【发布时间】:2014-09-17 09:06:13
【问题描述】:
声明:
SELECT *
FROM `announcements`
WHERE `website` = 17
AND `visible_date` <= '2014-08-05'
ORDER BY `visible_date` DESC
LIMIT 1
我想在 2014 年 8 月 5 日之前获得第一个具有 visible_date 的 announcement。有没有更好的方法?
现在,如果我有一个索引(website, visible_date),我猜 MySQL 可以使用索引获取第一行,而无需进行表扫描。
但我的 EXPLAIN 中的 rows 列显示 355 行而不是 1 行。
感谢您的帮助。
【问题讨论】:
-
@Satya 它们是等价的,只是同一事物的语法不同。
-
@Satya Barmar 说得对,没有帮助。