この機能:
CREATE FUNCTION `GetCardID`(numId INT) RETURNS int(11)
DETERMINISTIC
BEGIN
DECLARE retcard INT(11);
SELECT id
INTO retcard
FROM cards
WHERE `number` = numId
AND enabled = 1
LIMIT 1;
RETURN retcard;
END
クエリが次の場合でも、常に null を返します。
SELECT id FROM cards WHERE `number`=<Insert Value Here> AND ENABLED = 1 LIMIT 1;
関数パラメータで使用されているのと同じ値に対して有効な値を返します。
例:
SELECT id FROM cards WHERE number=12345 AND ENABLED = 1 LIMIT 1;
-- ID を返しますが、
GetCardId(12345);
-- null を返します
私がここで見逃しているアイデアはありますか?私は自分自身が SQL にはかなり熟練していると考えていますが、SP については少しグリーンです。