mysql> select @@server_id; +-------------+ | @@server_id | +-------------+ | 0 | +-------------+ 1 row in set (0.00 sec)mysql> set @A=100; Query OK, 0 rows affected (0.00 sec)mysql> select @A; +------+ | @A | +------+ | 100 | +------+ 1 row in set (0.06 sec)
但是我在存储过程里写的如下代码。就不行了…… set @ID_Temp=0; SELECT @ID_Temp=id FROM `users` WHERE username=UserName_INPUT AND userpass=UserPass_INPUT; select @ID_Temp;
SELECT ID TO @ID_Temp FROM `users` WHERE username=UserName_INPUT AND userpass=UserPass_INPUT; OR SELECT @ID_Temp:=id FROM `users` WHERE username=UserName_INPUT AND userpass=UserPass_INPUT;上个帖子已经说过了嘛
mysql的变量可以不用定义直接用
+-------------+
| @@server_id |
+-------------+
| 0 |
+-------------+
1 row in set (0.00 sec)mysql> set @A=100;
Query OK, 0 rows affected (0.00 sec)mysql> select @A;
+------+
| @A |
+------+
| 100 |
+------+
1 row in set (0.06 sec)
但是我在存储过程里写的如下代码。就不行了……
set @ID_Temp=0;
SELECT @ID_Temp=id FROM `users` WHERE username=UserName_INPUT AND userpass=UserPass_INPUT;
select @ID_Temp;
OR
SELECT @ID_Temp:=id FROM `users` WHERE username=UserName_INPUT AND userpass=UserPass_INPUT;上个帖子已经说过了嘛
9.3. 用户变量
可以先在用户变量中保存值然后在以后引用它;这样可以将值从一个语句传递到另一个语句。用户变量与连接有关。也就是说,一个客户端定义的变量不能被其它客户端看到或使用。当客户端退出时,该客户端连接的所有变量将自动释放。用户变量的形式为@var_name,其中变量名var_name可以由当前字符集的文字数字字符、‘.’、‘_’和‘$’组成。 默认字符集是cp1252 (Latin1)。可以用mysqld的--default-character-set选项更改字符集。参见5.10.1节,“数据和排序用字符集”。用户变量名对大小写不敏感。设置用户变量的一个途径是执行SET语句:SET @var_name = expr [, @var_name = expr] ...
对于SET,可以使用=或:=作为分配符。分配给每个变量的expr可以为整数、实数、字符串或者NULL值。也可以用语句代替SET来为用户变量分配一个值。在这种情况下,分配符必须为:=而不能用=,因为在非SET语句中=被视为一个比较 操作符: