提取字段json_data中的json字符串指定id的test值
DELIMITER
CREATE FUNCTION match_json_array(search_value VARCHAR(255), json_data VARCHAR(255)) RETURNS VARCHAR(255)
BEGIN
DECLARE i INT DEFAULT 0;
DECLARE app_name VARCHAR(255);
DECLARE value VARCHAR(255);
DECLARE array_length INT;
SET json_data = JSON_EXTRACT(json_data, '$');
SET array_length = JSON_LENGTH(json_data);
WHILE i < array_length DO
SET app_name = JSON_UNQUOTE(JSON_EXTRACT(json_data, CONCAT('$[', i, '].id')));
SET value = JSON_UNQUOTE(JSON_EXTRACT(json_data, CONCAT('$[', i, '].test')));
IF app_name = search_value THEN
RETURN value;
END IF;
SET i = i + 1;
END WHILE;
RETURN NULL; -- 如果未找到匹配值,可以选择返回NULL或其他默认值
END;
DELIMITER