在检查同一post_id的不同行中的2列值时,仅获得唯一的post_id?

时间:2019-05-22 01:15:55

标签: mysql wordpress case-statement

我有以下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值。

enter image description here

此查询在我这里做错了什么?

1 个答案:

答案 0 :(得分:2)

有效地,您的查询在AND上具有pm.meta_key条件,希望它同时为'webinar_date''start_time'以生成任何包含数据的行。那不是真的,因此您的所有行都包含NULL的{​​{1}}。您可以通过多种方式解决此问题,例如pm_post_id

JOIN