実現したいこと
- MySQLでjsonカラムの複数の値を検索したいです
前提
PHPでプログラムを作成しているのですが、MySQLのjsonカラムの中の複数の値を検索したいです。
jsonカラムには配列形式で数字のみ入っています。
カラムの中身の例:
|company_ features|
[1,2,3,4,5]
発生している問題・エラーメッセージ
以下のようなクエリで検索はできるのですが、複数の値を検索することができません。
SQL
1select * from company 2where JSON_EXTRACT(company_ features, '$[*]') like "%1%"
試したこと
以下ならできるのですが、できればin句を使うなどもっと良い方法はないでしょうか。
SQL
1select * from company 2where JSON_EXTRACT(company_ features, '$[*]') like "%1%" 3and JSON_EXTRACT(company_ features, '$[*]') like "%4%"
イメージとしては以下のような感じで取れると良いです。
SQL
1select * from company 2where JSON_EXTRACT(company_ features, '$[*]') IN (1,4)
補足情報(FW/ツールのバージョンなど)
JSONカラムの検索でもっと良い方法があればご教示いただければと思います。
回答1件