正确的语法是什么?我知道这是错误的,因为我打电话了,但我需要这样的东西
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
答案 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
即使该查询有效,我相信数据结构也不正确。顺便说一句,这是另一个问题。