首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果搜索项包含百分比(%),如何编写类似的语法?

如果搜索项包含百分比(%),如何编写类似的语法?
EN

Stack Overflow用户
提问于 2018-03-23 05:53:30
回答 3查看 2.6K关注 0票数 1

我正在使用SQL Server 2012,我需要对一个名为Notes的特定字段执行搜索。搜索条件是查找在该特定字段中提到术语8%的所有行。

我的WHERE查询的T-SQL子句如下所示:

代码语言:javascript
复制
WHERE [Notes] like '%[8%]%'

但是,根据上述语法,查询没有正确地进行筛选。它还包括提到术语8的行。

我看过以下问题中提出的答案,但仍然没有给出正确的答案。

使用'%‘的SQL 'LIKE’查询,其中搜索条件包含'%‘

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-03-23 05:59:54

单个字符类表示单个字符。因此,[%]表示文字百分比符号,而8[%]表示文字8%。试试这个:

代码语言:javascript
复制
SELECT * FROM yourTable WHERE [Notes] like '%8[%]%'

演示

票数 4
EN

Stack Overflow用户

发布于 2018-03-23 05:56:21

您需要在查询中转义%,例如在下面

代码语言:javascript
复制
SELECT columns FROM table
   WHERE column LIKE '%\%%' ESCAPE '\'

使用SQL序列

下面是来自MSDN的

模式匹配与转义子句

可以搜索包含一个或多个特殊通配符的字符串。例如,客户数据库中的折扣表可以存储包含百分比符号(%)的折扣值。若要将百分比符号搜索为字符而不是通配符,必须提供转义关键字和转义字符。例如,示例数据库包含一个名为注释的列,该列包含30%的文本。若要搜索注释列中任何位置包含字符串30%的行,请指定WHERE子句,如WHERE comment LIKE '%30!%%' ESCAPE '!'。如果未指定转义和转义字符,则数据库引擎将返回字符串30的任何行。

您可以尝试以下由@TimBiegeleisen给出的答案,这也是很简单的方法。

票数 3
EN

Stack Overflow用户

发布于 2018-03-23 06:05:59

只需将where子句改为

代码语言:javascript
复制
WHERE `Notes` LIKE '%8!%%' ESCAPE '!
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49443192

复制
相关文章

相似问题

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