MySQL 变量作为通配符字符串

MySQL Variable as Wildcard String

提问人:ronline 提问时间:2/2/2023 更新时间:2/2/2023 访问量:44

问:

硬编码的通配符关键字返回预期结果

select * from answer a where a.answer like "%grow%";

但是一旦我用变量替换关键字,就会停止工作

set @search = "grow";
select * from  answer a where a.answer like concat('"%', @search, '%"'); 
MySQL 变量 通配符

评论

2赞 Barmar 2/2/2023
'"%'应该只是.您在开始时匹配了文字。同样'%'"'%"'
1赞 ysth 2/2/2023
如果您只想查看它包含搜索字符串,请使用 instr 函数。仅当您在搜索中确实想要 % 和 _ 通配符时才使用 like

答:

0赞 ronline 2/2/2023 #1

基于上述@Barmar注释的工作代码

set @search = "grow";
select * from  answer a where a.answer like concat('%', @search, '%');