дб-скрипка

могу извлечь определенные данные в формате 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

Но результат тот же, только первый столбец возвращает что-то.

Ответы на вопрос(1)

Ваш ответ на вопрос