我正在从一个表中获取所有列,并使用函数JSON_OBJECT将结果提取到JSON中,但是当我执行存储过程时,我得到了这个错误。
CREATE DEFINER=`sistema`@`%` PROCEDURE `get_products_as_json`()
BEGIN
SET @fields = (
'SELECT
group_concat(\'\`\', column_name, \'\`\, \', column_name)
FROM
information_schema.columns
WHERE
table_schema = DATABASE()
AND table_name = \'products\'
ORDER BY table_name , ordinal_position'
);
SET @stmt = ('SELECT JSON_OBJECT(?) FROM products LIMIT 10');
PREPARE stmt FROM @stmt;
EXECUTE stmt USING @fields;
DEALLOCATE PREPARE stmt;
END
1条答案
按热度按时间jm81lzqq1#
不能以这种方式使用预准备语句。
你必须连接这个变量。
我还更改了第一个SELECT,这也工作,更好地阅读。
我还添加了DELIMITER,以防您不使用mysql工作台