CSV を持つ列を持つテーブルがあります。
TableA:
field_id | matches
---------------------
1 1,2,4,6,8,11,14,56
field_id
ここで、csv を指定してユーザーに一致するを取得する必要があります。したがって、たとえば、ユーザー文字列が1,4,11
である場合、値が単に である可能性がありますtrue
。
1.)Find_in_set
機能しません。要素を 1 つだけ取り、それを SET/CSV 列で検索するためです。2.) 使用できませんlike concat('%,', user_input , ',%')
。ユーザーの入力が正しくない可能性があるためです。
他のアイデアはありますか?これは非常に一般的なシナリオだと思います。
注: すべてのレコードを検索する必要はありません。特定のレコードを検索する必要があります。したがって、上の表では、 を持つ 1 つのレコードを検索するだけで済みますfield_id = 1
。すなわち ( where field_id = 1
)。(関係ないかもしれませんが、参考までに)