2

私は問題を抱えており、私の目標を達成するためのより良い方法があるかどうかを推測しています。いくつかの行を取得するためにMysqlでこのクエリを実行しました。

SELECT *
FROM table
WHERE field IN ('V','S','G','B')

私がやりたいのは、フィールドの値がINリストの行と同じである行を取得するクエリを実行することです。簡単な方法は、このクエリを使用することです。

SELECT *
FROM table
WHERE field LIKE '%V%' OR field LIKE '%S%' OR
      field LIKE '%G%' OR field LIKE '%B%'

私が知りたいのは、これを行う演算子があるか、少なくともその演算子が存在しない場合は、クエリを作成するためのより良い方法があるということです。

私を助けてくれるみんなに感謝します。

4

1 に答える 1

1

値をテーブル(Params)に入れてから、

SELECT *
  FROM table
 WHERE EXISTS (
               SELECT * 
                 FROM Params
                WHERE table.field LIKE '%' + Params.col + '%'
              );

Paramsテーブルの値にワイルドカード文字を含めることも検討してください。

于 2011-10-13T10:29:04.750 に答える