如何获取包含或不包含特殊字符的查询? 例如,我有这样的数据:“NÃO”,如果我通过键入“NAO”进行搜索,则应该将此信息返回给我。反之亦然,如果我有:“ANTONIO”,我写“ANTÓNIO”,ANTÓNIO应该回到我身边。 我用这个代码,但它不工作:使用特殊字符的SQL LIKE
SELECT * FROM PESSOA WHERE NOME like '%'+ @PROCURAR + '%'
如何获取包含或不包含特殊字符的查询? 例如,我有这样的数据:“NÃO”,如果我通过键入“NAO”进行搜索,则应该将此信息返回给我。反之亦然,如果我有:“ANTONIO”,我写“ANTÓNIO”,ANTÓNIO应该回到我身边。 我用这个代码,但它不工作:使用特殊字符的SQL LIKE
SELECT * FROM PESSOA WHERE NOME like '%'+ @PROCURAR + '%'
区分重音和重音不敏感搜索可能会不要使用Latin1_general_CI_AI
即安东尼和ANTONIO是,如果不区分重音相同。
在下面的查询Latin1_general_CI_AI
可以分解成以下几部分。
latin1
使服务器使用字符集latin 1,基本上ascii。
CI指定不区分大小写,所以“ABC”等于“abc”。
你查询应该如下:
SELECT * FROM table_name WHERE field_name COLLATE Latin1_general_CI_AI Like '%ANTONIO%' COLLATE Latin1_general_CI_AI
预期结果如下:
Id name
1 ÃNTONIO
2 ANTÓNIO
3 ANTONIO
4 ANTÓNIÓ
我这样做,它的工作 –
SELECT *
FROM PESSOA
WHERE NOME COLLATE Latin1_General_CI_AI Like '%'+ @PROCURAR + '%'
COLLATE Latin1_General_CI_AI
产品,请访问Latin1_General_CI_AI
in sql server, what is: Latin1_General_CI_AI versus Latin1_General_CI_AS
“NAO” 和 “NAO” 是不同的字符 – user1844933
试试这个,https://stackoverflow.com/questions/2461522/how-do-i-perform-一个重音不敏感的比较-e-é-ê-ê-and-ë-in-sql-ser –
有点破解,但是你可以比较一下'REPLACE(NOME,'Ã','A ')' –