0

这是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对所有情况进行插入。我在这里做错了什么?

4

2 回答 2

2

肯定是

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

或者

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

<=>这不是mysql中的比较

观测值

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

大多数这些值我不知道它们是什么,它们看起来是错误的

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

NOW()在这段代码中,只有NULL哪些是正确的

于 2012-12-18T14:38:08.657 回答
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
于 2012-12-18T14:39:03.067 回答