0

クエリのこの部分があります

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

ここで、このクエリは、8または9に設定されている行をロードします。

IN関数(可能であればコンマを使用)を使用して、89のみの行をロードする方法はありますか?

したがって、両方がない行は表示されません

簡単なWHEREステートメントを実行できますが、可能であればIN関数を使用する必要があります。

ここで説明された結果ここに画像の説明を入力してください

4

6 に答える 6

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

おそらく、本当に必要なのは、8と9の2つの会議機能のみを含むすべてのアクティブな会議(主キーでグループ化)をロードすることです。

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 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

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
于 2012-04-16T09:15:27.743 に答える