我在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
但是它似乎有点慢。所以我问是否有更快的方法