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

求达人给解释一下=,:=,select into的区别
mysql菜鸟。刚写存储过程练手。代码如下:
CREATE DEFINER=`root`@`localhost` PROCEDURE `CheckIsUserLogin`(UserName_INPUT varchar(20),UserPass_INPUT varchar(50))
begin
  DECLARE ID_Temp int;
  SET ID_Temp:=0;
  SELECT ID_Temp=ID FROM `Users` WHERE UserName=UserName_INPUT AND UserPass=UserPass_INPUT;
  select IF(ID_Temp>0,1,0);
end;
CPU瞬间顶满不执行不报错

后各种百度把SELECT语句改为:
SELECT ID INTO ID_Temp FROM `Users` WHERE UserName=UserName_INPUT AND UserPass=UserPass_INPUT;
后出正确结果


但是概念比较模糊,不了解=,:=和select into的区别,百度无果,求助各位大侠指点迷津,谢谢~

------解决方案--------------------
仔细看看我的代码,找找区别

 SELECT @ID_Temp:=ID FROM `Users` WHERE UserName=UserName_INPUT AND UserPass=UserPass_INPUT;
OR
SELECT ID INTO ID_Temp FROM `Users` WHERE UserName=UserName_INPUT AND UserPass=UserPass_INPUT;


------解决方案--------------------
探讨

引用:
而且在执行procedure的时候会有打印相对于的变量值 一直执行的时间。


打印相对于的变量值 一直执行的时间。
这是啥意思啊

------解决方案--------------------
引用 SELECT ID_Temp=ID FROM `Users` WHERE UserName=UserName_INPUT AND UserPass=UserPass_INPUT;