дб-скрипка
могу извлечь определенные данные в формате JSON.
У меня есть этот JSON:
[{"id":1, "type":2}, {"id":2, "type":1}]
Я хочу восстановить все идентификаторы в переменной в моей хранимой процедуре.
CREATE DEFINER=`root`@`%` PROCEDURE `new_procedure`(a JSON)
BEGIN
SELECT JSON_TYPE(a);
-- return ARRAY
SELECT a,JSON_EXTRACT(a,'$.id');
END
a
вернуть JSON, ноJSON_EXTRACT
пустой
Даже я доказываю, чтобы сохранить JSON во временной таблице
CREATE DEFINER=`root`@`%` PROCEDURE `new_procedure`(a JSON)
BEGIN
SELECT JSON_TYPE(a);
DROP TEMPORARY TABLE IF EXISTS jsonTemporary;
CREATE TEMPORARY TABLE jsonTemporary SELECT a;
SELECT *,a->'$.id',a->>'$.id',JSON_EXTRACT(a,'$.id') FROM jsonTemporary;
END
Но результат тот же, только первый столбец возвращает что-то.