我试图在存储过程中使用LIKE%...%,但我不确定如何在运算符中使用传入变量。例如,我这样做:
DELIMITER //
CREATE PROCEDURE GetGameByName(IN gameName varchar(255))
BEGIN
SELECT *
FROM game
WHERE gameTitle LIKE '% + gameName + %';
END //
DELIMITER ;
但是当我这样称呼它时
CALL GetGameByName('Creed');
它什么都没有返回(我玩游戏标题"刺客信条"
任何想法我做错了什么?感谢
答案 0 :(得分:1)
由于评论中的问题而更新 - 解决方案现在为WHERE gameTitle LIKE CONCAT('%',gameName,'%')
=====上一个答案=====
在我看来你忘了引号。您应该WHERE gameTitle LIKE '% + gameName + %';
WHERE gameTitle LIKE '%' + gameName + '%';
您设置的方式是,您将错误的通用文字'%gameTitle%'
提供给查询,而不是您真正想要的内容,例如:'%Creed%'
。