これに対する解決策をブルートフォースする方法を知っています。私は主に、将来のために自分の知識を増やすためのエレガントなソリューションを探しています。
20 個のコード フラグ フィールドを持つデータ テーブルがあります。(CODE_01、CODE_02、CODE_03、...、CODE_20)
これらのコード列のいずれかに特定の値 (例: 11、12、24、141 など) が含まれるレコードを探しています。
私はこのようにすることができます:
Select * from table
where CODE_01 IN (11, 12, 24, 141)
or CODE_02 IN (11, 12, 24, 141)
or ...
or CODE_20 IN (11, 12, 24, 141);
またはこのように:
Select * from table
where 11 IN (CODE_01, CODE_02, ..., CODE_20)
or 12 IN (CODE_01, CODE_02, ..., CODE_20)
or 24 IN (CODE_01, CODE_02, ..., CODE_20)
or 141 IN (CODE_01, CODE_02, ..., CODE_20);
どちらも機能し、コピー/貼り付けの演習にすぎません。これに似たものがあるかどうか疑問に思っています:
Select * from table
where (11, 12, 24, 141) IN (CODE_01, CODE_02, ..., CODE_20);
また
Select * from table
where (CODE_01, CODE_02, ..., CODE_20) IN (11, 12, 24, 141);
理論的には、20 個のフィールドを連結し、それを正規表現で検索できると思いますが、実行するのはかなり非効率的な (そして遅い) クエリだと思います。
ありがとう