SELECT COUNT(*) AS cnt, fid, FROM_UNIXTIME(dateline,'%e') AS date FROM cdb_posts WHERE FROM_UNIXTIME(dataline, '%Y-%m-%e') = '2008-11' GROUP BY date 为啥要group by fid, date两个呢,总是感觉不太好. 不过你非要加上也没有办法.
因为选择的字段有 fid,不用fid来gorup by 是选择不了的。。UNIXTIME(dataline,'%Y-%m')='2008-11'这个也改成这样吧。
主要是FROM_UNIXTIME(dateline,'%e')AS date,后面有group by fid,date mysql 中用了函数的话,原本dateline上的索引应该会不起作用,因为mysql要从新计算值UNIXTIME(dataline,'%Y-%m')='2008-11'这个也改成这样吧。 会更慢吧,在where子句中用的话,全表都要计算在比较,不如转成时间戳dateline取范围 dateline已经有索引了
SELECT COUNT(*) AS cnt, fid, FROM_UNIXTIME(dateline,'%e') AS date
FROM cdb_posts
WHERE FROM_UNIXTIME(dataline, '%Y-%m-%e') = '2008-11'
GROUP BY date
为啥要group by fid, date两个呢,总是感觉不太好.
不过你非要加上也没有办法.
mysql 中用了函数的话,原本dateline上的索引应该会不起作用,因为mysql要从新计算值UNIXTIME(dataline,'%Y-%m')='2008-11'这个也改成这样吧。
会更慢吧,在where子句中用的话,全表都要计算在比较,不如转成时间戳dateline取范围
dateline已经有索引了