3

値がフォーマットで格納されたフィールドを持つ db テーブルがありvalue1,value2,value3,value4ます。このフィールドに定義された値が含まれているすべての行を見つけたいです。value3.

このようなフィールドの値を検索するクエリを実行するにはどうすればよいですか?

4

2 に答える 2

11

使用するFIND_IN_SET()

SELECT  *
FROM    tableName
WHERE   FIND_IN_SET('value3', 'comma separated value here') > 0

ソース

MySQL ドキュメントからの説明:

文字列 str が N 個の部分文字列で構成される文字列リスト strlist にある場合、1 から N の範囲の値を返します。文字列リストは、「,」文字で区切られた部分文字列で構成される文字列です。最初の引数が定数文字列で、2 番目の引数が SET 型の列である場合、FIND_IN_SET() 関数はビット演算を使用するように最適化されます。str が strlist にない場合、または strlist が空の文字列の場合は 0 を返します。いずれかの引数が NULL の場合は NULL を返します。

于 2013-03-30T14:53:41.560 に答える
0

次を使用してこれを行うことができますlike

where concat(',', field, ',') like '%,value3,%'
于 2013-03-30T14:53:45.670 に答える