0

我有这部分的查询

SELECT * FROM conference WHERE active='1' AND conference_feature_id IN (8,9)

现在,此查询加载设置为 89 的行。

有没有办法如何使用 IN 函数(如果可能,使用逗号)来加载只有 89 的行。

所以没有它们的行都不会显示

我可以做一个简单的 WHERE 语句,但如果可能的话,我迫切需要使用 IN 函数

结果在这里解释在此处输入图像描述

4

6 回答 6

1

也许您真正想要的是加载仅包含两个会议功能的所有活动会议(按主键分组):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
)
于 2012-04-16T08:32:01.677 回答
1

那应该工作:

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
于 2012-04-16T08:24:53.140 回答
1

尝试

SELECT * FROM conference WHERE active='1' AND conference_feature_id = 8
UNION ALL
SELECT * FROM conference WHERE active='1' AND conference_feature_id = 9
于 2012-04-16T08:25:25.463 回答
1

尝试

select * from conference where active='1' and 9 in conference_feature and 8 in conf
于 2012-04-16T08:34:40.600 回答
0

我发现的最好的最好的查询是

SELECT * FROM conference WHERE active='1' AND 
conference_feature_id = '8' AND 
conference_feature_id ='9'

你怎么看?

于 2012-04-16T08:37:19.880 回答
0

我相信以下方法可行,但我确信对SETSQL 中的类型和位运算符有更好理解的人可以提供更简洁的版本:

SELECT * FROM conference WHERE 
  active='1' 
  AND 
  FIND_IN_SET(8, conference_feature_id) > 0 
  AND
  FIND_IN_SET(9, conference_feature_id) > 0
于 2012-04-16T09:15:27.743 回答