MYsql中的IF条件没有给出正确的结果

时间:2012-12-18 14:35:40

标签: mysql

这是mysql存储过程的代码:

BEGIN
DECLARE sms INT(100);
SET sms=(SELECT COUNT(1) FROM tbl_intofone_alert_transaction WHERE smsid='sms_id');
IF(sms<=>0) THEN
INSERT INTO tbl_intofone_alert_transaction(MSISDN,Message,Tag,SenderID,InTime,deliverystatus,
memberid,smsid,updatetime,submit_type,wu_id,DeviceID) 
VALUES(mob,msg,tag,sender,NOW(),'0',memid,sms_id,NOW(),'NULL','NULL',DevId);
END IF;
   END$$ 

IF CONDITION 在上面的代码中插入所有案例。我在这里做错了什么?

2 个答案:

答案 0 :(得分:2)

一定是

   IF(sms<=0) THEN    //sms  less then or equal 0

  IF(sms>=0) THEN      //sms  bigger then or equal 0

<=>这不是mysql中的比较

OBS

  VALUES(mob,msg,tag,sender,NOW(),'0',memid,sms_id,NOW(),'NULL','NULL',DevId);

大多数这些价值观我不知道它们是什么,它们看起来不对

它们必须是您从代码中获取它们的变量。

在此代码中,只有NOW()NULL是正确的

答案 1 :(得分:1)

您确定要在此处搜索字符串文字'sms_id'吗?

SELECT COUNT(1) FROM tbl_intofone_alert_transaction WHERE smsid='sms_id'

可能您打算使用sms_id变量的值:

SELECT COUNT(1) FROM tbl_intofone_alert_transaction WHERE smsid = sms_id