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$$ 

上記のコードのIFCONDITIONは、すべての場合に挿入を実行します。私がここで間違ったことは何ですか?

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の比較ではありません

obs

  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 に答える