我想在 MySQL 中使用一个存储过程,在 SELECT 语句的 WHERE 子句中它将使用 3 个参数的选择
示例
SELECT * FROM MyTable
WHERE (Postcode = @postcode
OR StreetName = @streetname
OR JobNumber = @jobnumber)
据我所知,如果 WHERE 子句中只有 1 个参数,则可以 CALL MyStoredProc('thevariable') 来执行 StoredProc,但是 WHERE OR 子句中有 3 个参数,我该如何执行它?
最佳答案
您可以向存储过程添加多个参数。
DELIMITER $$
CREATE PROCEDURE test_procedure(post_code VARCHAR(8), street_name VARCHAR(64), job_number INT)
BEGIN
SELECT * FROM MyTable
WHERE Postcode = post_code
OR StreetName = street_name
OR JobNUmber = job_number;
END
DELIMITER ;
要运行它,您可以像其他任何东西一样调用它,但传递所有必需的参数
CALL test_procedure('ABC123', 'Charles St', 5134);
您可以阅读有关它们的更多信息 here on the MySQL documentation website .
关于使用参数和查询的 MySQL 存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23794818/