我有一个wordpress网站,日期以这种方式存储在2014年1月24日的meta_value下。如果有2个日期具有相同的值,那么我的sql只选择一个日期。
我的查询是:
SELECT wp_posts.* ,wp_postmeta.*
FROM wp_posts,wp_postmeta
WHERE wp_posts.ID = wp_postmeta.post_id
AND wp_posts.post_status = 'publish'
AND wp_postmeta.meta_key='advert_date'
AND STR_TO_DATE(wp_postmeta.meta_value, '%d/%m/%Y') BETWEEN '2014-01-01' AND '2014-01-31'
GROUP BY wp_postmeta.meta_value
ORDER BY wp_postmeta.meta_value asc
共有7条记录,日期为
1 -- 03/01/2014
2 -- 08/01/2014
3 -- 10/01/2014
4 -- 16/01/2014
5 -- 24/01/2014
6 -- 24/01/2014
7 -- 31/01/2014
它只显示6条记录并忽略记录ID 6.
是否忽略重复记录?
答案 0 :(得分:2)
mysql中的group by语句组合了重复的条目。这非常方便。由于您按日期分组,因此它将“汇总”所有日期。但是只显示了第一个按分组排列的。当使用SUM或AVERAGE等聚合函数时,这通常很有用。假设您想知道约会时所有的钱。按日期分组并汇总资金。你会得到每个日期和多少钱的条目。
答案 1 :(得分:1)
您需要从SQL中删除group by wp_postmeta.meta_value
。