2

次のようなテーブルがあります。

Col1    Col2
word1   872
word1   333
word2   631
word3   982
word3   111
word4   111
word5   631
word6   333
word6   453

複数の SELECT の結果を受け取りたいのですが、すべての結果で発生する結果のみです。たとえば、 と を検索している場合、SELECT col2 FROM table WHERE col1='word1'これらSELECT col2 FROM table WHERE col1='word6'2 つのステートメントを結合して、上記のクエリ例の両方で発生する結果のみを返す単一の MySQL ステートメントを作成します。(array_intersect と同じことが PHP で機能します。)

任意の数の col1 単語に対してこれを行う単一のクエリが必要です。

うまく説明できていなかったらすみません。説明が難しかったです。

4

1 に答える 1

1

この問題への最善のアプローチは、集計を使用することです。

select col2
from t
group by col2
having max(col1 = 'word1') = 1 and
       max(col1 = 'word2') = 1

これは、より多くの単語に簡単に一般化できます。

于 2013-02-11T15:26:58.510 に答える