Строка JSON_CONTAINS везде в структуре - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть столбец 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

Но, похоже, это немного медленно.Поэтому я спрашиваю, есть ли более быстрый способ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...