使用参数和查询的 MySQL 存储过程

标签 mysql

我想在 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/

相关文章:

mysql - 如何将SQL查询的结果输出到报表表中?

php - 如何多次获取特定字段值..我的输出来自两个不同的表通过 INNER JOIN

php - 从从 mysql 数据库检索到的图像在 php 中插入 masonry

php - 用php显示每个数据中的子数据

mysql查询查找可能以不同字母开头的特定单词?

mysql查询多个表

mysql - Bitnami Wordpress phpmyadmin 无法连接到 mysql

mysql - 需要帮助将数据集从多行转换为单行

php - laravel 5.2 搜索查询

mysql - QtCreator错误: QMYSQL driver not loaded