使用PREPARE在mysql中进行多查询。。。从…起

使用PREPARE在mysql中进行多查询。。。从…起,mysql,stored-procedures,sql-delete,Mysql,Stored Procedures,Sql Delete,我必须在MySQL Workbench中运行以下代码: set @myquery = "DELETE FROM tbl1 WHERE camp = 'asd';DELETE FROM tbl1 WHERE camp = 'pol'" if (@myquery <> '') THEN PREPARE st FROM @myquery; EXECUTE st; DEALLOCATE PREPARE st; END IF; 但是如果我手动执行这个命令,它就会工作:

我必须在MySQL Workbench中运行以下代码:

set @myquery = "DELETE FROM tbl1 WHERE camp = 'asd';DELETE FROM tbl1 WHERE camp = 'pol'"
if (@myquery <> '') THEN
    PREPARE st FROM @myquery;
    EXECUTE st;
    DEALLOCATE PREPARE st;
END IF;
但是如果我手动执行这个命令,它就会工作:

DELETE FROM tbl1 WHERE camp = 'asd';DELETE FROM tbl1 WHERE camp = 'pol'
DELETE FROM tbl1 WHERE camp = 'asd';
如果我这样更改查询,它将工作:

DELETE FROM tbl1 WHERE camp = 'asd';DELETE FROM tbl1 WHERE camp = 'pol'
DELETE FROM tbl1 WHERE camp = 'asd';

你能帮我吗?

AFAIK
IF。。那么,MySQL中的
只能在存储过程或函数的上下文中使用。为什么要为此运行两个查询?为什么不删除一个
delete。。。营地所在地(“asd”、“pol”)?哦,我不知道为什么,但我还没有考虑过这个选项。谢谢但是,如果我想提出我的问题,为什么会有限制呢?还要注意以下几点:
SQL语句的语法不支持多个语句(即,单个字符串中由“;”字符分隔的多个语句)。
。看见