В дополнение к предложению @ BillKarwin обрезать пробелы перед вводом его в базу данных, вы также можете обновить все значения в базе данных, чтобы удалить ложные пробелы:
UPDATE product_json_table
SET description = REGEXP_REPLACE(description, '\\s|\\r|\\n','');
Тогда ваш исходный запрос будетработа:
SELECT id, product, description
FROM product_json_table
WHERE JSON_EXTRACT(description, '$.wheels') > 2;
Вывод:
id product description
1 truck_space {"wheels":4,"seats":3,"fuel":"diesel","mileage":8}
Демонстрация на dbfiddle
Обновление
Вы также можете выполнить замену пустого пространства на лету, хотя это будет гораздо менее эффективно, чем его полное удаление с помощью запроса UPDATE
, указанного выше:
SELECT id, product, REGEXP_REPLACE(description, '\\s|\\r|\\n','') AS description
FROM product_json_table
WHERE JSON_EXTRACT(REGEXP_REPLACE(description, '\\s|\\r|\\n',''), '$.wheels') > 2
Вывод:
id product description
1 truck_space {"wheels":4,"seats":3,"fuel":"diesel","mileage":8}
Демо на dbfiddle