Lif*_*sun 1 mysql stored-procedures
我想要调用存储过程的最佳方法,其中我在单个参数中有多个值,例如 City 参数具有像 'london'、'lyon'、'kln' 等值。
我的存储过程是这样的
CREATE PROCEDURE `GetCityEmpData`(IN `City` VARCHAR(64))
BEGIN
SELECT * FROM Employees
WHERE Employees.City in (City);
END
Run Code Online (Sandbox Code Playgroud)
并像这样称呼它
call GetCityEmpData("'London',Lyon'") ;
Run Code Online (Sandbox Code Playgroud)
它返回 0 行,其中有给定参数的数据。是否可以在没有准备语句的情况下执行相同的操作?
你可以试试这个:
CREATE PROCEDURE `GetCityEmpData`(`City` VARCHAR(64))
BEGIN
set @query = concat("SELECT * FROM Employees
WHERE Employees.City in (" , City , ")");
PREPARE stmt FROM @query;
EXECUTE stmt ;
END
Run Code Online (Sandbox Code Playgroud)
然后您可以根据需要调用您的程序:
call GetCityEmpData("'London','Lyon'") ;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6016 次 |
| 最近记录: |