首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sql搜索包含diacritics的字段

sql搜索包含diacritics的字段
EN

Stack Overflow用户
提问于 2010-08-12 15:36:56
回答 3查看 7.3K关注 0票数 15

我在一个网站搜索工作,它使用的是Sql server 2008快速版。

我有'Books'表,其中有一个名为'Title‘的字段,其中有包含罗马尼亚(拉丁文)字符的标题。

好吧,如果用户在搜索字段中插入了一个类似于'casa‘这样的单词,而我在db中有一个标题:'test casăătest’,我想展示那本书,但是:

代码语言:javascript
复制
select * from books where title like '%casa%'

不会找到的..。

你知道在做选择的时候有什么函数可以移除音符吗?

我知道我可以用sql server的全文搜索插件来解决这个问题,但是我想用一种更简单的方式来解决这个问题。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-08-12 15:47:46

代码语言:javascript
复制
select * from books where title COLLATE Latin1_General_CI_AI like '%casa%'

当然,你应该选择符合你的.只需改变AI的结尾,使其“口音迟钝”。

德国货币的快速例子

代码语言:javascript
复制
DECLARE @foo TABLE (bar varchar(100) /*implied COLLATE Latin1_General_CI_AS*/)

INSERT @foo VALUES ('xxx fish yyy')
INSERT @foo VALUES ('xxx bar yyy' )
INSERT @foo VALUES ('xxx bär yyy')

select * from @foo where bar COLLATE Latin1_General_CI_AI like '%bar%'
select * from @foo where bar like '%bar%'
票数 21
EN

Stack Overflow用户

发布于 2010-08-12 15:48:00

您需要使用口音不敏感的排序子句。

票数 5
EN

Stack Overflow用户

发布于 2012-01-01 14:13:43

如果您需要在linq中这样做,我认为您必须先删除搜索字符串中的解析词,然后再进行linq查询.应该管用的..。

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

https://stackoverflow.com/questions/3469401

复制
相关文章

相似问题

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