Mysql 多参数在存储过程中有多个查询

标签 mysql sql stored-procedures

我需要创建一个接受多个参数的“选择”mysql 程序,与此程序内联,该程序将选择其他表

目标

  1. 存储过程必须接受多个参数
  2. 使用多个参数,程序应该在table_a、table_b和table_c上进行选择

目前我正在使用这段代码(它接受多个参数但我不知道如何修改它以便它会在 table_b 和 table_c 上进行另一个选择)

DELIMITER //

CREATE PROCEDURE select_multiple_object(IN user_ids VARCHAR(65535))
BEGIN
    SET @query = CONCAT ('SELECt * FROM table_a WHERE userid IN (',user_ids,')');
    PREPARE stmt FROM @query;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;
END //
DELIMITER ;

我真正想要实现的是这样的:

DELIMITER //

CREATE PROCEDURE select_multiple_object(IN user_ids VARCHAR(65535))
BEGIN
    SET @query = CONCAT ('
        SELECt * FROM table_a WHERE userid IN (',user_ids,');
        SELECt * FROM table_b WHERE userid IN (',user_ids,');
        SELECt * FROM table_c WHERE userid IN (',user_ids,');
    ');
    PREPARE stmt FROM @query;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;
END //
DELIMITER ;



CALL select_multiple_object('1,2,3')

最佳答案

首先组装您的 MySQL 查询,然后发送查询,类似于以下内容:

$parameter = "user_ids";
$table = "table_a";
$query = 'SELECT * FROM ' . $parameter . ' WHERE userid IN (",' . $parameter . ',")';
$result = mysql_query($query);

要输入多个参数,只需使用循环根据需要重复此过程即可。

关于Mysql 多参数在存储过程中有多个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25966241/

相关文章:

MySQL BEFORE UPDATE 触发器 - 更改值

python - 使用腌制数据而不是其他表是一种好习惯吗?

mysql - 与 MySQL 中的 NOW() 比较日期

sql - MySQL合并两个查询

mysql - MySQL 过程参数问题

mysql 创建过程语法问题第 1 行

php - 使用连接表中的 mPDF 进行打印

mysql - 存储过程中的 case 语句问题

java - Hibernate 运行时出现 "Table not found"错误

mysql - 如何拆分逗号分隔值