У меня есть столбец JSON в моей базе данных MySQL (5.7.25), который может содержать любой тип структуры 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» в любой изproperties (также, если строка является подстрокой значения свойства json).
Единственный найденный мной способ работы заключался в следующем:
JSON_SEARCH(payload, 'one', '%Demo%') IS NOT NULL
Но, похоже, это немного медленно.Поэтому я спрашиваю, есть ли более быстрый способ