首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Server中搜索特殊字符

在Server中搜索特殊字符
EN

Stack Overflow用户
提问于 2016-08-26 14:23:40
回答 3查看 1.2K关注 0票数 0
代码语言:javascript
复制
select * 
from table
where column LIKE '%[^0-9a-zA-Z]%'

在where子句中,如何将以下字符也视为“特殊”字符?

代码语言:javascript
复制
(,./;#:[]{}=-_+)(*^!`\|)

基本上,我想返回一堆西里尔字母/北欧字符或任何其他有趣的字符。

此外,select * from表中的‘%^0-9a-zA%’列有什么区别?

代码语言:javascript
复制
select * 
from table
where column NOT LIKE '%[0-9a-zA-Z]%'

再来一遍:我想找到类似于Dƒ.的东西,而不是Dafao

谢谢

EN

回答 3

Stack Overflow用户

发布于 2016-08-26 14:39:50

你需要用或条件来扩展你的同类。

代码语言:javascript
复制
SELECT * 
FROM table
WHERE column LIKE '%[^0-9a-zA-Z]%'
     OR column LIKE "%#%" 
     OR column LIKE "%{%" OR (etc.)
票数 1
EN

Stack Overflow用户

发布于 2016-08-26 18:19:17

您应该能够简单地将这些字符包含在您已经拥有的模式中,只需确保在必要时用"\“对每个字符进行转义,如下所示:

代码语言:javascript
复制
select * 
from table
where column LIKE '%[^0-9a-zA-Z\,\.\/\;\#\:\[\]\{\}\=\-\_\+\)\(\*\^\!\`\\\|]%'

编辑:

为了更好地适应Unicode (即nvarchar数据类型),有几个选项讨论了HERE,其中一个比较优雅的选项(您的默认排序规则是ASCII或类似的)似乎是使用如下条件:

代码语言:javascript
复制
select *
from table
where column <> cast(column as varchar(500)) --length should match the base column length
or column LIKE N'%[^0-9a-zA-Z\,\.\/\;\#\:\[\]\{\}\=\-\_\+\)\(\*\^\!\`\\\|]%'

将nvarchar值与varchar等效值进行比较是一种简单的方法,可以识别所有不兼容的字符(如Cyrillic),然后再将类似的过滤器深入到ASCII字符的子集。似乎对此效果很好。

票数 0
EN

Stack Overflow用户

发布于 2019-06-29 10:20:21

代码语言:javascript
复制
... LIKE '[[]%'

您可以使用[ ]包围一个特殊字符(或范围)。你不需要逃离关闭支架。

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

https://stackoverflow.com/questions/39168561

复制
相关文章

相似问题

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