存储过程中的动态MYSQL查询
Posted
技术标签:
【中文标题】存储过程中的动态MYSQL查询【英文标题】:dynamic MYSQL query in stored procedure 【发布时间】:2012-08-25 00:25:38 【问题描述】:SELECT @query1 := GROUP_CONCAT(CONCAT('SELECT * FROM asterisk.', 表名) SEPARATOR ' UNION ALL ') AS CUSTOMQUERY FROM Information_Schema.tables WHERE table_name LIKE '%custom%'; 从@query1准备stmt;执行语句; DEALLOCATE PREPARE stmt;
..但是在结果的最后我们得到了缺失的查询 像 SELECT * FROM asterisk.custom_70003 UNION ALL SELECT * FROM asterisk.custom_70006 UNION ALL SELECT * FROM asterisk.custom_70007 UNION ALL SELECT * FROM asterisk.custom_70010 UNION ALL SELECT * FROM asterisk.custom_70011 UNION ALL SELECT * FROM asterisk.custom_70042 UNION ALL SELECT * FROM asterisk.custom_70043 UNION ALL SELECT * FRO ..
您的 SQL 语法有错误;检查与您的 mysql 服务器版本相对应的手册,以在第 1 行的“FRO”附近使用正确的语法
所以它给了我错误
..我想在我的 s-s-rS 报告中使用它。和 s-s-rs querybuilder 提示 我作为参数..所以如果我们在程序中使用它将会有好处 对我来说。因为这样我可以轻松地在我的报告中访问它。
【问题讨论】:
【参考方案1】:你应该增加group_concat_max_len的值。
来自文档:group_concat_max_len
是 GROUP_CONCAT() 函数的最大允许结果长度(以字节为单位)。默认为 1024。
【讨论】:
以上是关于存储过程中的动态MYSQL查询的主要内容,如果未能解决你的问题,请参考以下文章