日期:2014-05-16  浏览次数:20880 次

有谁能告诉我这样select给一个变量赋值有什么问题?在Sql server 中,应该是正确的阿
/*$EmailID   是输入参数*/

declare   $UserIDTemp   int;

set   $UserIDTemp     =   0;

/*下面这条语句明明可以看到UserID   为   1*/
select   UserID   from   t_UserLogin   where   EmailID   =   $EmailID;
                 
/*但是执行下面这条语句,$UserIDTemp   就是得不到UserID值*/
select   $UserIDTemp   =   UserID   from   t_UserLogin   where   EmailID   =   $EmailID;                    


是不是Mysql   赋值只能用SET语句,但是要从一个表里取出某个数据的话也只能
用SELECE   语句而不能用SET   命令。


------解决方案--------------------
declare $UserIDTemp int;
不是declare @UserIDTemp int?

------解决方案--------------------
select UserID into $UserIDTemp from t_UserLogin where EmailID = $EmailID;

试试,我没试过 :)
------解决方案--------------------
MYSQL中要用INTO语法。
select UserID from t_UserLogin where EmailID = $EmailID into $UserIDTemp ;
------解决方案--------------------
应该用
select UserID into $UserIDTemp from t_UserLogin where EmailID = $EmailID;
注意 Mysql的语法和MS SQL的语法是不一样的。
------解决方案--------------------
lz把变量名EmailID改一下就好,不能跟栏位名一样的,只是mysql存储过程的规定.