使用SQL LIKE运算符,如Stored Procedure参数

时间:2015-04-12 20:06:56

标签: mysql sql sql-like

我试图在存储过程中使用LIKE%...%,但我不确定如何在运算符中使用传入变量。例如,我这样做:

DELIMITER //
CREATE PROCEDURE GetGameByName(IN gameName varchar(255))
 BEGIN
 SELECT * 
 FROM game
 WHERE gameTitle LIKE '% + gameName + %';
 END //
DELIMITER ;

但是当我这样称呼它时

CALL GetGameByName('Creed');

它什么都没有返回(我玩游戏标题"刺客信条"

任何想法我做错了什么?感谢

1 个答案:

答案 0 :(得分:1)

由于评论中的问题而更新 - 解决方案现在为WHERE gameTitle LIKE CONCAT('%',gameName,'%')

=====上一个答案=====

在我看来你忘了引号。您应该WHERE gameTitle LIKE '% + gameName + %';

,而不是WHERE gameTitle LIKE '%' + gameName + '%';

您设置的方式是,您将错误的通用文字'%gameTitle%'提供给查询,而不是您真正想要的内容,例如:'%Creed%'