【发布时间】:2019-03-30 09:14:27
【问题描述】:
我正在尝试显示两个日期之间的条目。日期以'dd/mm/YYYY' 的格式存储。
meta_id | post_id | meta_key | meta_value
5652 | 510 | _begin_date_course | 04/02/2018
5756 | 512 | _begin_date_course | 04/02/2018
5889 | 510 | _end_date_course | 11/03/2019
6002 | 512 | _end_date_course | 04/02/2019
..
我试图在两个日期之间返回一个post_id。
如果我试试这个:
SELECT * FROM wp_postmeta
WHERE (meta_key = '_begin_date_course' AND STR_TO_DATE(meta_value, '%d/%m/%Y') >= '2019-02-04')
或
SELECT * FROM wp_postmeta
WHERE (meta_key = '_end_date_course' AND STR_TO_DATE(meta_value, '%d/%m/%Y') <= '2020-06-06')
它正在工作。
但如果我尝试使用 AND 格式,它就不起作用
SELECT * FROM wp_postmeta
WHERE (meta_key = '_begin_date_course' AND STR_TO_DATE(meta_value, '%d/%m/%Y') >= '2019-02-04')
AND (meta_key = '_end_date_course' AND STR_TO_DATE(meta_value, '%d/%m/%Y') <= '2020-06-06')
可能是因为 _begin_date_course 和 _end_date_course 位于两个不同的条目中。
在这种情况下如何获取某个范围内的 post_id?
【问题讨论】:
-
您确定年份的差异(数据中的 2018 年和查询中的 2019 年)是有意的吗?
-
你的查询会很慢:(