如果表中不存在参数中传递的值,则此存储过程应返回false。
CREATE DEFINER=`listsjag_user`@`%` PROCEDURE `Select_ReferenceAvailability`(IN ref VARCHAR(45))
BEGIN
IF EXISTS (
SELECT * FROM tbl_dataLibrary
WHERE itemreference = @ref
) THEN
SELECT 'true';
ELSE
SELECT 'false';
END IF;
END
它对所有值都返回true,但列itemreference中只有一个值。
有没有人有任何想法?
答案 0 :(得分:0)
MySQL存储过程实际上不能返回值。您可以传入OUT参数并对其进行修改,也可以将过程转换为函数。
CREATE FUNCTION ReferenceAvailability (IN ref VARCHAR(45))
RETURNS boolean
BEGIN
IF(EXISTS(SELECT * FROM tbl_dataLibrary WHERE itemreference = @ref)) THEN
RETURN 1;
END IF;
RETURN 0;
END;
我将你的真/假改为1/0,随意改回来,但你需要返回varchar(5)。
在选择中使用此功能:
SELECT ReferenceAvailability(...)
希望有所帮助。