WordPressDB一列和另一列中有两个值

umuewwlo  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(306)

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

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\u key中有一个request\u count,并且它在meta\u key中的approval等于1

zc0qhyus

zc0qhyus1#

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

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

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

相关问题