Ответ - использовать функцию JSON_CONTAINS
.
SELECT COUNT(id) as matches
FROM my_table
WHERE JSON_CONTAINS(my_table.settings, '{ "color": "red", "location": "Australia", "flavour": "cheese" }')
Это подходит для случая, когда вы ищете JSON, где вы не знаете структуру с JSON, вы не знаете структуру из
В Laravel Eloquent ORM вы бы:
MyTable::whereRaw('JSON_CONTAINS(my_table.settings, ?)', json_encode($jsonString));