0

table2 のカンマ区切りの列からすべての一致を選択したいと思います。列は次のようになります: 0,1,2 OR 2,4,5 OR 2,5 OR 1,3,5 など

私は試してみました:

SELECT * from table where 1,3,5 IN(SELECT commaseparated FROM table2) WHERE ..

ただし、コンマを使用するとステートメントでエラーが発生します。

REGEXP も使用してみましたが、私の場合は 1,3,5 内のすべての一致を検索する必要があります

どうすればこれを解決できますか?:)

4

1 に答える 1

3

標準SQLではできません。これは

   WHERE singlevalue IN (list, of, values)

リストをリストと比較したい場合は、適切に正規化されるようにテーブルを修正する必要があります。書式設定されたデータをフィールドに格納することは、基本的にリレーショナル データベースの目的を無効にします。関係を形成できる形式でなければ、データとの関係を確立できません。

これらの CSV リストがサブテーブルにある場合は、非常に単純な JOIN クエリを実行して仕様を満たすことができます。

于 2012-04-04T21:36:12.583 に答える