不完全なタイトルで申し訳ありません。これについても正しい方向へのポイントが必要です。コンマ区切りのテキスト フィールドに文字列を含むレコードを検索するためのクエリを作成しようとしています。私はMySqlとphpを使用しています。
レコードの例:
recordID | statuses[TEXT]
1010 | 102
1011 | 100,103
1012 | 100,106,201,300
検索したい彫像を別のテーブルの statues_dataset から照会します
statusName | statusCode | Yes/No
name1 | 100 |
name2 | 101 |
name3 | 102 | Yes
name3 | 103 |
name4 | 106 | Yes
ここで、彫像 102 または 106 を含むすべてのレコードを検索したいと考えています。
これを 2 つのステップで解決し、必要なものに対して statues_dataset をクエリし、条件部分を連結して、基本的に次のクエリを取得します。
SELECT * FROM table AS t
WHERE t.statuses LIKE '%201%'
OR t.statuses LIKE '%206%'
またはこれ
SELECT * FROM table AS t
WHERE FIND_IN_SET('201',t.statuses)
OR FIND_IN_SET('206',t.statuses)
私が望む結果が得られます:
recordID | statuses
1010 | 102
1012 | 100,106,201,300
今、これを解決するためのより良い方法があるかどうか疑問に思っていました。できれば1つのクエリで。または、検索したい値のリストを作成する 2 つのクエリで。FIND_IN_SET(str,strlist) 関数を見ましたが、問題は複数の str が必要なことです。検索したい複数の値を入力できるように使用できる関数はありますか? 私はグーグルで調べましたが、適切に尋ねる方法がわからないのではないかと心配しています。