Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带声明的MySQL动态查询_Mysql_Variables_Declare - Fatal编程技术网

带声明的MySQL动态查询

带声明的MySQL动态查询,mysql,variables,declare,Mysql,Variables,Declare,我想问一下,是否可以在动态查询中声明变量 i、 e: 但是我得到了语法错误:您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行“DECLARE x INT(11)”附近使用的正确语法 谢谢 仅允许在BEGIN中使用First-DECLARE。。。结束复合语句 第二,并非所有的stataments都可以用在PREPARE语句中,这里有更多的细节 但是你可以用这样的东西- SET @text = 'something'; SET @var = NULL; SET @query

我想问一下,是否可以在动态查询中声明变量

i、 e:

但是我得到了语法错误:
您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行“DECLARE x INT(11)”附近使用的正确语法

谢谢

  • 仅允许在BEGIN中使用First-DECLARE。。。结束复合语句
  • 第二,并非所有的stataments都可以用在PREPARE语句中,这里有更多的细节
但是你可以用这样的东西-

SET @text = 'something';
SET @var = NULL;
SET @query = 'SELECT ? INTO @var';
PREPARE s FROM @query;
EXECUTE s USING @text;
DEALLOCATE PREPARE s;

SELECT @var;
+-----------+
| @var      |
+-----------+
| something |
+-----------+

您好@Devart,我的
PREPARE
语句实际上在
存储过程中。编辑我的问题。谢谢:DAnyway,DECLARE语句不能用于已准备好的语句。尝试使用用户变量(@var1,@var2,…)。我明白了,其他语句还不受支持。谢谢。我想我别无选择,只能使用
会话变量
SET @text = 'something';
SET @var = NULL;
SET @query = 'SELECT ? INTO @var';
PREPARE s FROM @query;
EXECUTE s USING @text;
DEALLOCATE PREPARE s;

SELECT @var;
+-----------+
| @var      |
+-----------+
| something |
+-----------+