【问题标题】:How to write the LIKE syntax where the search term includes a percentage (%)?如何编写搜索词包含百分比 (%) 的 LIKE 语法?
【发布时间】:2018-03-23 05:53:30
【问题描述】:
【问题讨论】:
标签:
sql
sql-server
tsql
sql-like
【解决方案1】:
单个字符类表示单个字符。所以[%] 表示文字百分比符号,8[%] 表示文字8%。试试这个:
SELECT * FROM yourTable WHERE [Notes] like '%8[%]%'
Demo
【解决方案2】:
您需要在下面的查询中转义%
SELECT columns FROM table
WHERE column LIKE '%\%%' ESCAPE '\'
Using SQL Escape Sequences
以下来自MSDN
Pattern Matching with the ESCAPE Clause
您可以搜索包含一个或多个特殊通配符的字符串。例如,客户数据库中的折扣表可能存储包含百分号 (%) 的折扣值。要将百分号作为字符而不是通配符进行搜索,必须提供 ESCAPE 关键字和转义字符。例如,示例数据库包含名为 comment 的列,其中包含文本 30%。要在注释列的任意位置搜索包含字符串 30% 的任何行,请指定 WHERE 子句,例如 WHERE comment LIKE '%30!%%' ESCAPE '!'。如果未指定 ESCAPE 和转义字符,数据库引擎将返回任何带有字符串 30 的行。
您可以尝试@TimBiegeleisen 给出的以下答案,这也是一种简单的方法。
【解决方案3】:
只需将 where 子句更改为
WHERE `Notes` LIKE '%8!%%' ESCAPE '!