无法使用存储过程过滤带有 % mysql 的行
Posted
技术标签:
【中文标题】无法使用存储过程过滤带有 % mysql 的行【英文标题】:Can't filter rows with % mysql using stored procedure 【发布时间】:2015-03-11 00:07:58 【问题描述】:我的想法是使用 % 和 IN 变量过滤行,我正在调用此过程,但它不会过滤行。例如: 如果用户键入 09,则应出现所有带有 09... 的行。我也尝试过使用 concat 但也无法过滤。如果您能给我任何帮助,我将不胜感激。
这是程序
delimiter //
create procedure p (in cedula1 varchar(10))
begin
select * from view_pacientes
-- THIS PART IS WRONG BUT I DONT KNOW HOW TO CORRECT IT TO WORK PROPERLY.
where cedula1+"%" like cedula;
end//
【问题讨论】:
这显然是 mysql,所以我删除了 sql-server 标签。 【参考方案1】:它认为这是你在 MySQL 中想要的语法:
select *
from view_pacientes
where cedula like concat(cedula1, '%') ;
当你在 MySQL 中定义一个存储过程时,我建议你在你的参数前面加上一些让它们特别的东西。对于“in”和“out”参数,我的偏好是 in_
和 out_
。
【讨论】:
以上是关于无法使用存储过程过滤带有 % mysql 的行的主要内容,如果未能解决你的问题,请参考以下文章