Wordpress DB的一列有两个值,而另一列则是AND

时间:2018-07-24 03:17:30

标签: mysql sql wordpress

正确的语法是什么?我知道这是错误的,因为我打电话了,但我需要这样的东西

SELECT *
FROM `wp_postmeta`
WHERE `meta_key` = 'request_count' AND (`meta_key` = 'approval' AND `meta_value` = '1');

我尝试过这个

SELECT *
FROM `wp_postmeta`
WHERE `meta_key` IN ('request_count','approval') AND `meta_value` = '1';

但是它并没有做我想做的事。

编辑

ID |Meta_key       | Meta_value|
1  |request_count  | 1         |
1  |approval       | 1         |
2  |approval       | 1         |
3  |request_count  | 2         |
3  |approval       | 2         |

我想显示ID 1,因为它在 meta_key 中具有 request_count ,在 meta_key 中具有 approval 等于等于 1

1 个答案:

答案 0 :(得分:1)

根据您的示例数据,以下查询应该有效:

SELECT pm.*, (select pm2.value FROM wp_postmeta pm2 WHERE pm2.post_id = pm.post_id AND pm2.`key` = 'approval' AND pm2.`value` = '1') AS approval 
FROM wp_postmeta pm
WHERE pm.`key` = 'request_count'
HAVING approval = 1

即使该查询有效,我相信数据结构也不正确。顺便说一句,这是另一个问题。