我在使用sql Server 2008 express版本的网站搜索工作.
我有“书”表,其中有一个名为“标题”的字段,其中包含罗马尼亚语(拉丁)字符的标题.
那么,如果用户在搜索字段中插入一个如’casa’这样的词,我在db中有一个标题:’testcasătest’我想显示那本书,但是:
select * from books where title like '%casa%'
不会找到它…
你在做选择时是否知道任何消除变音符的功能?
解决方法
select * from books where title COLLATE Latin1_General_CI_AI like '%casa%'
当然,你应该选择一个与你匹配的排序规则,只需将AS更改为AI,使其成为“重音不敏感”
与德国变音乐的快速例子
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%'