laravel mysql类json查询

um6iljoc  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(772)

在laravel中,我可以使用以下类似的查询:

Model::where('column', 'LIKE', 'a%');

查询以字母a开头的列。如何在json列中执行此操作?。

Model::where('meta->column', 'LIKE', 'a%');

我试过了,但没有得到任何结果,像这样查询:

Model::where('meta->column', 'LIKE', '%a%');

返回列包含字母a的结果。我只想查询以字母a开头的列。

8yoxcaq7

8yoxcaq71#

在mysql中 meta->column 是json编码的。必须添加前导引号:

Model::where('meta->column', 'LIKE', '"a%');

在laravel 5.6.28中,可以使用 ->> 操作员:

Model::where('meta->>column', 'LIKE', 'a%');
dsekswqp

dsekswqp2#

我不确定这是否行得通,但你可以试试。它使用mysql 8 json搜索函数。

Model::where(DB::raw('meta->"$.column" LIKE "%a%"'))->get();

相关问题