プロが教える店舗&オフィスのセキュリティ対策術

MySQL5.0のストアドプロシージャで引数の使い方がわからなくて困っています。

ストアドプロシージャで

IF文で引数の空の判定と、
LIKE '%name%'にその引数を使いたいのです。

どなたかわかるかたいらっしゃいませんか?




□プログラムからコールする
strSQL = "CALL buttonaction_proc2(syohinCd, syohinCdLast, name, count) ";



□ストアドプロージャ

delimiter //
CREATE PROCEDURE buttonaction_proc2(IN syohinCd INT(8), IN syohinCdLast INT(8), IN name VARCHAR(40), IN count INT(8))

IF ((syihinCd IS NOT NULL) OR (syohinCdLast IS NOT NULL) OR (name IS NOT NULL)) THEN
AND (SYOHIN_CD BETWEEN syohinCd AND syohinCdLast)

ELSE (IF syohinCd IS NOT NULL) THEN
AND (SYOHIN_CD BETWEEN syohinCd AND count)

ELSE IF (syohinCdLast IS NOT NULL) THEN (
AND (SYOHIN_CD BETWEEN 1 AND syohinCdLast)
)

IF (name IS NOT NULL) THEN
AND NAME LIKE '%name%'

END IF

END IF
ORDER BY SYOHIN_CD;
END
//

A 回答 (1件)

文法というか、ストアドプロシジャの使い方が目茶苦茶になっていますけど?



wikipediaで「create procedure」で検索すれば、MySQLやPostgreSQLのストアドプロシジャ例が検索できますので参考にしてください。

この回答への補足

ネットで調べてわからなかったのでここで質問しました。

引数なしであれば CALLで呼び出すことができましたが、

ここではその引数と、IF文の使い方が間違っているのですが、

補足日時:2009/07/16 23:13
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!