前提
Laravelのwhereを使ってjsonの値を前方一致で絞り込んで取得したい
実現したいこと
testテーブル
idとhoge列があるとして
id / hoge (型:json) 1 ['TTaaaa','TTbbb','TTbaaa'] 2 ['TTvv','TTgg','TTrrb'] 3 ['TTvv','TTgz','TTbr']
という上記のようなデータで
「TTg」
という文言で前方一致で検索し、sqlで言うdistinctのような形で
TTgg,
TTgz
というhogeのjson内の文字列を取得したいです
そこで以下のようにlike検索をかけました
$model->where('hogehoge', 'LIKE', '%"TTg' );
そうすると当たり前に
2 ['TTvv','TTgg','TTrrb']
3 ['TTvv','TTgz','TTbr']
のhogeのjsonが取れてきます。
それを
$hoge = array_unique(Arr::flatten($hoge));
のようにして、
TTgg,
TTgz
の二文字を配列で取得することに成功しました。
しかしarray_uniqueなどを使わずにlaravelのクエリビルダだけで
一発で同じことを実現できたりしますでしょうか?
他にいい方法がないか知りたいです。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/07/18 06:34
2022/07/18 06:48
2022/07/18 06:53 編集
2022/07/19 01:30
2022/07/19 01:38
2022/07/19 02:00 編集
2022/07/19 02:16
2022/07/19 02:17
2022/07/19 02:25
2022/07/19 02:46
2022/07/19 03:12 編集
2022/07/20 05:30
2022/07/20 05:54
2022/07/21 06:29
2022/07/21 06:49 編集
2022/07/21 11:56
2022/07/21 12:39
2022/07/21 14:05 編集