我有以下MySQL命令:
SELECT CASE WHEN pm.meta_key = 'webinar_date' AND pm.meta_value = '20190521' THEN pm.post_id
ELSE NULL
END AS pm_post_id
FROM wp_postmeta AS pm
WHERE pm.meta_key = 'start_time' AND CAST(pm.meta_value AS TIME) <= '21:05:44'
ORDER BY NULL;
我正在尝试获取唯一的post_id值,其中webinar_date
是20190521,并且时间小于或等于21:05:44。
根据wp_postmeta表中数据的这张图片,它应该返回行,但是我却得到了所有NULL值。
此查询在我这里做错了什么?
答案 0 :(得分:2)
有效地,您的查询在AND
上具有pm.meta_key
条件,希望它同时为'webinar_date'
和'start_time'
以生成任何包含数据的行。那不是真的,因此您的所有行都包含NULL
的{{1}}。您可以通过多种方式解决此问题,例如pm_post_id
:
JOIN