MySQL是否使用了指数?

我的查询的一部分看起来像:

HAVING date > '2011-04-13 04:28:03'

日期变量是索引的,这对查询有影响吗?

EXPLAIN EXTENDED似乎没有使用索引,但我不知道是否只是因为我在数据库中有4行我正在测试.

我的查询:

SELECT AVG(slen) FROM
(
SELECT date, COUNT(id) as slen
FROM table
WHERE product_id = 2830
GROUP BY id
HAVING date > '2011-04-13 04:28:02'
) as T

有几行具有不同的日期值.我想选择日期>的ID组’2011-04-13 04:28:02′.然后我想要一个属于一个组的平均行数,没有日期条件.

按原样查询,顺便说一下也不行.

我的另一个问题是日期> ‘2011-04-13 04:28:02’会使用我的日期列索引.

从这个数据集:

sid             datelast                product_id
782240551706    2011-04-13 00:51:52     2830
782240551706    2011-04-13 04:05:48     2830
782240551706    2011-04-13 04:28:03     2830
111111111111    2011-04-13 00:50:30     2830

期望的结果:

应选择ID为782240551706的组,平均值应为3.

以下查询生成所需的结果:

SELECT AVG(slen) FROM
(
SELECT date, COUNT(id) as slen
FROM table
WHERE product_id = 2830
GROUP BY id
HAVING **max(date)** > '2011-04-13 04:28:02'
) as T

解决方法:

HAVING与GROUP BY一起使用,因此它是派生表.我不知道如何使用索引.

上一篇:关于SQL关键字"having "


下一篇:SQL HAVING 语法