我有以下MySQL查询。
DECLARE RecCount Int Default 0;
SET RecCount=(select count(*) from tables where WaiterID=1 and date(TDate)=date(now()));当我执行它时,我会得到以下错误:
Error Code: 1193. Unknown system variable 'RecCount'因此,我在谷歌上搜索了“在MySQL中声明变量”。似乎每个人都使用DECLARE
我不明白为什么我的查询不执行。
我正在使用MYSQL工作台6.0CE,我最终希望在PHP中执行这个查询。
编辑:
我使用了默认值为0。如果删除默认的0,并将查询更改为下面所写的内容,它将执行。但是它仍然没有像它应该的那样保存结果!
SET RecCount=(select count(*) from tables where WaiterID=1 and date(TDate)=date(now()));
SELECT RecCount;发布于 2013-10-07 11:58:45
您必须在一个过程或函数中运行该代码。
如果使用控制语句,则必须在函数或过程中使用它们。
MySQL支持用于存储程序中流控制的IF、CASE、ITERATE、LOOP循环、within和REPEAT结构。
发布于 2013-10-07 12:02:31
你发现的DECLARE说:
此语句在存储的程序中声明局部变量。
如果在其他地方使用DECLARE,则会出现语法错误:
mysql>声明RecCount默认为0; 错误1064 (42000):您的SQL语法有错误;请检查与您的MySQL服务器版本对应的手册,以便在第1行使用接近“RecCount Int默认值0”的r语法。
您的https://stackoverflow.com/questions/11505522/mysql-declaring-variables清楚地定义了一个BEGIN...END代码块,由于MySQL不支持匿名代码块,所以它不能工作(这就是问题所在)。
您的MySQL客户端可能没有被配置为在错误时中止,而且您只得到了最后一个错误。
我的印象是,您在跟踪会话变量,但不使用DECLARE:SET
mysql> SET @foo='bar';
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT @foo;
+------+
| @foo |
+------+
| bar |
+------+
1 row in set (0.00 sec)https://stackoverflow.com/questions/19224213
复制相似问题