2

次の SQL コードがあります。

DELIMITER $$

CREATE PROCEDURE `test`.`new_procedure` (queryString VARCHAR(255))
BEGIN
    SELECT @tempValue = COUNT(*) FROM test.userdata_extended WHERE inn LIKE queryString;
    IF @tempValue > 0 SELECT * FROM test.userdata_extended WHERE inn LIKE queryString;
END $$

COUNT*結果を@tempValue変数に入れています。次に、ゼロより大きいかどうかを比較しようとしています。

ステートメント比較プロセスでエラーが発生しました。MySQL からUNEXPECTED SELECT SYMエラーが報告されます。どういう意味ですか?

また、これは別のテーブルのチェックになります。IF-ELSE ステートメントが必要です。いくつかのクエリ結果に基づいて、開発したアプリケーションがデータを処理または提供するために、手順が正確なコード エラー値 (異なる可能性があります) を返す必要があるためです。

この問題を解決するにはどうすればよいですか?

ありがとう

4

2 に答える 2

1

THENif 文でを忘れました。を追加する必要がありTHENます。

このような:

IF @tempValue > 0 THEN ...your statement 
END IF;

これも追加するのを忘れていましたEND IF;

参考サイトはこちら

于 2013-07-08T06:25:35.843 に答える
0

あなたは忘れてTHENEND IF;

IF @tempValue > 0 THEN 
      SELECT * FROM test.userdata_extended WHERE inn LIKE queryString;
END IF;
于 2013-07-08T06:28:37.667 に答える