Deo*_*eon 2 mysql json laravel mysql-5.7 laravel-5.6
在 laravel 中使用 eloquent 我可以使用 LIKE 查询,如下所示:
Model::where('column', 'LIKE', 'a%');
Run Code Online (Sandbox Code Playgroud)
查询以字母 a 开头的列。我怎样才能在 json 列中做到这一点?
Model::where('meta->column', 'LIKE', 'a%');
Run Code Online (Sandbox Code Playgroud)
我尝试过,但在像这样查询时没有得到任何结果:
Model::where('meta->column', 'LIKE', '%a%');
Run Code Online (Sandbox Code Playgroud)
返回列包含字母 a 的结果。我只想查询以字母 a 开头的列。
在MySQL中,结果meta->column是JSON编码的。您必须添加前导引号:
Model::where('meta->column', 'LIKE', '"a%');
Run Code Online (Sandbox Code Playgroud)
在 Laravel 5.6.28 中,您可以使用->>运算符:
Model::where('meta->>column', 'LIKE', 'a%');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6004 次 |
| 最近记录: |