使用 SQL LIKE 运算符作为存储过程参数

Using SQL LIKE operator like a Stored Procedure paramater

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

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

但是当我这样称呼它时

CALL GetGameByName('Creed');

它没有返回任何内容(我有一个带有 gameTitle "Assassin's Creed"

的游戏

知道我做错了什么吗?谢谢

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

===== 上一个回答 =====

在我看来你好像忘记了引号。而不是 WHERE gameTitle LIKE '% + gameName + %';,你应该做 WHERE gameTitle LIKE '%' + gameName + '%';

按照您设置的方式,您将错误的通用文本 '%gameTitle%' 输入到查询中,而不是您真正想要的内容,例如:'%Creed%'.