我有这部分的查询
SELECT * FROM conference WHERE active='1' AND conference_feature_id IN (8,9)
现在,此查询加载设置为 8或9 的行。
有没有办法如何使用 IN 函数(如果可能,使用逗号)来加载只有 8和9 的行。
所以没有它们的行都不会显示
我可以做一个简单的 WHERE 语句,但如果可能的话,我迫切需要使用 IN 函数
结果在这里解释
我有这部分的查询
SELECT * FROM conference WHERE active='1' AND conference_feature_id IN (8,9)
现在,此查询加载设置为 8或9 的行。
有没有办法如何使用 IN 函数(如果可能,使用逗号)来加载只有 8和9 的行。
所以没有它们的行都不会显示
我可以做一个简单的 WHERE 语句,但如果可能的话,我迫切需要使用 IN 函数
结果在这里解释
也许您真正想要的是加载仅包含两个会议功能的所有活动会议(按主键分组):8 和 9
SELECT *
FROM conference
WHERE conference_id IN
(
SELECT conference_id
FROM conference
GROUP BY conference_id
HAVING SUM(conference_feature_id IN (8,9)) = 2
)
那应该工作:
SELECT * FROM myTbl as myTbl1 WHERE active='1' AND conference_feature_id = 8
JOIN
SELECT * FROM myTbl as myTbl2 WHERE active='1' AND conference_feature_id = 9
ON myTbl1.id = myTbl2.id
尝试
SELECT * FROM conference WHERE active='1' AND conference_feature_id = 8
UNION ALL
SELECT * FROM conference WHERE active='1' AND conference_feature_id = 9
尝试
select * from conference where active='1' and 9 in conference_feature and 8 in conf
我发现的最好的最好的查询是
SELECT * FROM conference WHERE active='1' AND
conference_feature_id = '8' AND
conference_feature_id ='9'
你怎么看?
我相信以下方法可行,但我确信对SET
SQL 中的类型和位运算符有更好理解的人可以提供更简洁的版本:
SELECT * FROM conference WHERE
active='1'
AND
FIND_IN_SET(8, conference_feature_id) > 0
AND
FIND_IN_SET(9, conference_feature_id) > 0