0

次のような内容の varchar フィールドがあります。

a,b,c,d
e,d,a,c
b,q,d,e

入力文字列と等しい要素を持つフィールドを持つ行のみを選択するクエリを実行する必要があります。

元の入力: c,a

選択された行:

a,b,c,d
e,d,a,c

OR ('%a%' のようなフィールド OR '%c%' のようなフィールド) を使用せずに可能ですか?

ありがとう

4

2 に答える 2

2

はい、使用できます...

WHERE
    myField LIKE '%a%' AND myField LIKE '%c%'

ただし、これは SQL に厄介なフィールドがあるように聞こえます。

通常、この種の情報を指定するには、リンク テーブルを使用します。

Table1
    id
    otherdata...

Table2
    id
    letter

LinkTable
     Table1Id
     Table2Id

したがって、LinkTable には、レコードをリンクする多くのエントリがあります。したがって、「a,b,c,d」をフィールドに格納する代わりに、次の 4 つのリンク レコードがあります。

Table1Id    Table2Id
1           1 (a)
1           2 (b)
1           3 (c)
1           4 (d)
于 2010-03-22T09:47:10.733 に答える
0

はい、しかしトリックが必要です: 同じ値を含むがソートされた 2 番目の列を作成します。

a,b,c,d
a,c,d,e
b,d,e,q

これで、クエリを実行できます%a%c%

クエリ文字列が不要な値の部分文字列になる可能性がある場合、これは機能しません。この場合、引用符が必要です。

"a","b","c","d"
"a","c","d","e"
"b","d","e","q"

およびクエリ%"a"%"c"%

于 2010-03-22T09:47:41.110 に答える