2017-12-07 11 views
0

私は問題を抱えている:私は句が他の場合

SELECT COUNT(*) 
FROM user 
WHERE userid = 1234 AND password = 1234; 
概念は私の擬似コードでは、このようなものです

場合には、このクエリの結果を使用したい - 私は方法がわかりませんそれ

if (count = 0) { 
    SELECT logintattempt 
    INTO @temp 
    FROM user 
    WHERE userid = 1234 

    SELECT (@temp+1) INTO @temp 
} 

SELECT loginattempt 
FROM user 
WHERE userid = 1234; 

if(loginattempt >= 3) { 
    UPDATE user 
    SET status = 'blocked' 
    WHERE userid = 1234; 
} 

試みが増加し、ログイン試行が3以上である場合、それは私の理解からブロック

答えて

0

に更新状態を実行するログイン回数0は、その後、あなたは番目の使い方を知りたい場合はeの結果は

SELECT COUNT(*) FROM user WHERE userid=1234 AND password=1234; 

if文になります。あなたのやり方は次のとおりです:

SET @count:= (SELECT COUNT(*) FROM user WHERE userid=1234 AND password=1234); 
SELECT @count; 

これは役に立ちますか?

+0

は、 –

+0

を支援するためのおかげでちょっと私の答えを更新し、チェックにMySQLでそれを実行してい今すぐ –

+0

'SET @count:=(ユーザーからのSELECT COUNT(*)ユーザーID = 1234とパスワード= 1234); SELECT @count;ユーザここで、ユーザID = 1234 FROM {SELECTが@temp INTO SELECT(@ TEMP + 1)ユーザID = 1234 ユーザから@temp INTO logintattempt}(@count)場合に選択loginattempt。 if(loginattempt> = 3){ UPDATEユーザーセットステータス= 'ブロック済み' userid = 1234; } ' if節を追加するとこのようになりますか? –

0
SET @count:= (SELECT COUNT(*) FROM user WHERE userid=1234 AND password=1234); 
SELECT @count; 

IF (@count == 0) 
BEGIN 
SELECT logintattempt INTO @temp FROM user WHERE userid=1234 
SELECT (@temp+1) INTO @temp 
END 

私はそれを試してみてはlocalhost/phpmyadminの.butまだerorr私がいない他のプログラミングlanguangeでのみMySQLで実行したい

+0

if文はストアドプログラム(プロシージャ、関数、トリガ)でのみ使用できます。 Mysql null安全な等しいです<=>です。 –

+0

あなたは@ P.Salmon –

+0

https://dev.mysql.com/doc/refman/5.7/en/create-procedure.htmlを行うためのリンクを与えることができます。また、トリガーも見たいと思うかもしれません –