首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL:为什么逃逸不能在类似的操作符中工作?

问MySQL:为什么逃逸不能在类似的操作符中工作?
EN

Stack Overflow用户
提问于 2020-04-29 22:03:52
回答 1查看 379关注 0票数 1

我正在MySQL 8.0中试验模式匹配字符串:

代码语言:javascript
复制
CREATE TABLE foo (bar VARCHAR(250));

INSERT INTO `foo` (`bar`) VALUES ('\%');

作为练习,我想使用LIKE编写一个特定的查询,返回“类似于文字\%”的行。(我知道这实际上应该通过=比较来完成,但这是一个练习)

  1. As %是一个通配符,我不能简单地使用:

SELECT * from `foo` WHERE `bar` LIKE '\%';

  • When我尝试使用默认转义字符\进行转义--它也失败了:

同样,当我尝试使用SELECT * from `foo` WHERE `bar` LIKE '\\%';

  • And关键字来定义一个非默认转义字符时,ESCAPE:

SELECT * from `foo` WHERE `bar` LIKE '\|%' ESCAPE '|';

为什么查询2和3不适合我?

EN

回答 1

Stack Overflow用户

发布于 2020-04-29 22:21:10

三个很简单。

%不是通配符,不是像其他字符那样简单的字符。

代码语言:javascript
复制
SELECT * from `foo` WHERE `bar` LIKE '\%' ESCAPE '|';

效果很好

第二种方法也很管用。

但你需要

代码语言:javascript
复制
SELECT * from `foo` WHERE `bar` LIKE '\\\%';

我记得你必须逃离逃跑和通配符!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61512523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档