【发布时间】:2022-11-17 04:49:34
【问题描述】:
我有一个使用 CONCAT 的 Select 语句查询,它会生成一组其他 SELECT 语句。我怎样才能迭代地执行这些?
这是我的第一个查询
SELECT CONCAT( 'SELECT body from knowledge where id=''', id, '''', ' INTO OUTFILE ''', '/tmp/',CAST(id AS CHAR), '.html'';') FROM knowledge ORDER BY id;
这导致一行选择语句:
SELECT body from knowledge where id='1' INTO OUTFILE '/tmp/1.html'; |
| SELECT body from knowledge where id='2' INTO OUTFILE '/tmp/2.html'; |
| SELECT body from knowledge where id='3' INTO OUTFILE '/tmp/3.html'; |
| SELECT body from knowledge where id='4' INTO OUTFILE '/tmp/4.html'; |
| SELECT body from knowledge where id='5' INTO OUTFILE '/tmp/5.html'; |
+-------------------------------------------------------------------------------------------------------------------------------------------------------+
5 rows in set (0.000 sec)
需要执行每行中返回的这些查询集。我怎样才能做到这一点?
【问题讨论】:
-
使用存储过程。您正在动态地组装 SQL 语句并执行它们,您需要使用存储过程逻辑。
-
你必须写一个存储过程。它可以将结果放在一个变量中,然后使用
PREPARE和EXECUTE。
标签: mysql sql database mariadb export