我查询一部分是这样的: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
。它有不同的日期值的几行。我想选择日期>'2011-04-13 04:28:02'的ID组。然后我需要属于一个组的行的平均数量,没有日期条件。
原样查询,仍然无法正常工作。
我的其他问题是date>'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而不是WHERE的理由? – zerkms 2011-04-14 02:42:37
你能告诉我们一个你期望得到结果的样本吗? – dkretz 2011-04-14 02:51:51
添加了预期结果。 – Tony 2011-04-14 02:59:03