次のような友情を保存するテーブルがあります。
Friend : f_id , f_userid1 , f_userid2 , f_status .
ユーザー a がユーザー b と友達の場合、1 行だけ挿入します。
f_userid1 = a , f_userid2 = b
この友情の行があるかどうかを確認したいので、ステータスをゼロに変更します。そのための手順を作成しました。
BEGIN
DECLARE fid INT(15);
-- check for first one
SELECT f_id INTO fid FROM f WHERE
f_userid1 = @userid1
AND f_userid2 = @userid2;
SET oup = 1;
IF(fid = 0) THEN
SET oup = 2;
-- check for SECOUND one
SELECT f_id INTO fid FROM f WHERE f_userid2 = @userid1 AND f_userid1 = @userid2;
END IF;
-- if statment
IF(fid > 0) THEN
SET oup = 3;
-- we need to update the exiting request
UPDATE f SET f_userid1 = @userid1 , f_userid2 = @userid2 , f_status = 0 WHERE f_id = @fid ;
END IF;
END
私は前にここのような列を持っています
f_id = 1 , f_userid1 = a . f_userid2 = b , f_status = 1;
正常に実行されますが、影響を受ける行はありません。
出力を追加しましたが、 1 しか返されません。
私の問題はどこですか?