MySQl 8 - Как искать ключ JSON, где столбец находится в формате json - PullRequest
0 голосов
/ 17 июня 2020

У меня есть MySQL таблица версии 8 с полем JSON, где я храню данные в таком формате.

Ниже указано значение, которое я храню в MySQLWorkbench, а столбец называется атрибуты

["{\"id\":1,\"product_color_type\": 0, \"product_color\": \"yellow\", \"product_price\":22.90, \"product_stock_status\": \"in_stock\", \"product_quantity\": 300, \"product_delivery_fee\": 0,  \"product_delivery_period\": 4, \"product_sub_images_url\" : [\"https://images.com/staging/c5fc25a2-8853-4700-bb66-ea5f159e2dab/product/sub_images/boom.jpg\",\"https://images.com/staging/c5fc25a2-8853-4700-bb66-ea5f159e2dab/product/sub_images/product2.png\"]}", "{\"id\":2,\"product_color_type\": 0, \"product_color\": \"red\", \"product_price\":120.90, \"product_stock_status\": \"in_stock\", \"product_quantity\": 50, \"product_delivery_fee\": 0,  \"product_delivery_period\": 4, \"product_sub_images_url\" :  [\"http://www.google.co.in/intl/en_com/images/srpr/logo1w.png\"]}"];

Я хочу найти ключ объекта, например product_price или product_sub_images_url

Пример запроса, который я выполняю для product_price

SELECT * FROM products WHERE JSON_EXTRACT(attributes,'$.product_price') LIKE '%22.90%'; 

Пример запроса, который я выполняю для product_sub_images_url

SELECT * FROM products WHERE JSON_EXTRACT(attributes,'$.product_sub_images_url') LIKE '%https://images.com/staging/%';

, и он возвращает пустой результат.

...