gpt4 book ai didi

mysql - 键值表的 "SELECT .. WHERE .. AND .."(两个条件)?

转载 作者:可可西里 更新时间:2023-11-01 07:17:44 24 4
gpt4 key购买 nike

我想做什么

我试图通过询问 type = xtarget = x 来获取 commentId

通常(THIS IS A EXAMPLE),表的结构应该是这样的:

+-----------+-------+--------+
| commentId | type | target |
+-----------+-------+--------+
| 1 | post | 2 |
| 2 | post | 8 |
| 3 | video | 6 |
+-----------+-------+--------+

在这种情况下,我可以使用此查询来获取 commentId:

SELECT `commentId` FROM `comment_datas` WHERE type = 'post' AND target = '2'

真正的问题

但是这是表的真实结构(使用键值设计):

+-----------+--------+-------+
| commentId | name | value |
+-----------+--------+-------+
| 1 | type | post |
| 1 | target | 2 |
| 2 | type | post |
| 2 | target | 8 |
| 3 | type | post |
| 3 | target | 6 |
+-----------+--------+-------+

现在我不知道如何通过上面写的查询获取 commentId,有什么想法吗?

最佳答案

commentId 分组。然后你可以过滤那些至少有一个记录的组,你想要的条件

SELECT commentId 
FROM comment_datas
GROUP BY commentId
HAVING sum(name = 'type' and value = 'post') > 0
AND sum(name = 'target' and value = '2') > 0

关于mysql - 键值表的 "SELECT .. WHERE .. AND .."(两个条件)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37273052/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com