将MySQL查询转换为带参数的例程

时间:2010-10-27 05:22:11

标签: sql mysql database

我正在使用VSC ++和MySQL ver.5.2.25数据库,我在MySQL中测试过这样的查询:

   select Name from test.virus where Name LIKE 'b' '%' ORDER BY Name;

它运行良好并返回以'b'开头的所有名称,我想使用例程而不是此查询,以便我可以从我的程序中调用例程。我试过这个:

-- --------------------------------------------------------------------------------
-- Routine DDL
-- --------------------------------------------------------------------------------
DELIMITER $$

CREATE DEFINER=`root`@`localhost` PROCEDURE `StartWith`(NewName VarChar(20))
BEGIN
select NameVirus from test.virus 
where NameVirus LIKE "'+NewName+' '%'" ORDER BY NameVirus;
END

当我在MySQL中调用例程时没有错误,但结果是一个空表,我猜问题是参数类型,哪个类型应该是“NewName”参数?
感谢任何回复

1 个答案:

答案 0 :(得分:0)

示例查询中的您喜欢的条件存在缺陷。它应该是'b%'

过程where子句可能需要如下所示:

where NameVirus LIKE CONCAT(NewName,'%') order by NameVirus