我正在MySQL 8.0中试验模式匹配字符串:
CREATE TABLE foo (bar VARCHAR(250));
INSERT INTO `foo` (`bar`) VALUES ('\%');作为练习,我想使用LIKE编写一个特定的查询,返回“类似于文字\%”的行。(我知道这实际上应该通过=比较来完成,但这是一个练习)
%是一个通配符,我不能简单地使用:SELECT * from `foo` WHERE `bar` LIKE '\%';
\进行转义--它也失败了:同样,当我尝试使用SELECT * from `foo` WHERE `bar` LIKE '\\%';
ESCAPE:SELECT * from `foo` WHERE `bar` LIKE '\|%' ESCAPE '|';
为什么查询2和3不适合我?
发布于 2020-04-29 22:21:10
三个很简单。
%不是通配符,不是像其他字符那样简单的字符。
SELECT * from `foo` WHERE `bar` LIKE '\%' ESCAPE '|';效果很好
第二种方法也很管用。
但你需要
SELECT * from `foo` WHERE `bar` LIKE '\\\%';我记得你必须逃离逃跑和通配符!
https://stackoverflow.com/questions/61512523
复制相似问题