JSON_CONTAINS字符串在结构中的任何地方

时间:2019-02-04 14:51:29

标签: php mysql json laravel eloquent

我在MySQL数据库(5.7.25)中有一个JSON列,该列可以包含任何类型的JSON结构(因此,我没有所有行共有的任何属性)

如何通过laravel ELOQUENT执行查询,以搜索与JSON列的属性之一中的字符串匹配的行?

我尝试过:

JSON_CONTAINS(`payload`, "key")

但是mySQL抛出以下异常:

Invalid JSON text in argument 2 to function json_contains: "Invalid value." at position 0

例如,如果结构类似于此:

{first_name:"John", "last_name":"Smith", "company":"Demo Company"}

我想搜索所有属性中包含单词“ Demo”的所有行(如果字符串是json属性值的子字符串,则也是如此)。

我发现的唯一工作方法如下:

JSON_SEARCH(payload, 'one', '%Demo%') IS NOT NULL

但是它似乎有点慢。所以我问是否有更快的方法

0 个答案:

没有答案