【发布时间】:2017-10-03 18:55:18
【问题描述】:
mysql> select * from CT;
| CID | MID | REPORT_QUERY |
| 1 | 1 | select * from emp; |
| 2 | 2 | select * from student; |
2 rows in set (0.00 sec)
我想在REPORT_QUERY 列中执行查询。
DELIMITER //
CREATE PROCEDURE TRYct()
BEGIN
SET @str=(SELECT GROUP_CONCAT(REPORT_QUERY SEPARATOR ' ') FROM CT);
PREPARE q from @str;
EXECUTE q;
END //
DELIMITER ;
我使用此代码,但如果我的表中只有一个查询,它就可以工作。如果有两个查询比它给出一个错误。
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select * from student' at line 1
问题出在哪里?帮帮我。
【问题讨论】:
-
我不喜欢将 sql 存储在 sql 表中,但您尝试从 sql 存储过程运行此类查询对我来说似乎很奇怪。如果你把它保存在 sql 中,为什么不直接制作存储过程呢?如果没有,为什么不从客户端运行查询?
标签: mysql stored-procedures group-concat sql-server-group-concat