如何獲取包含或不包含特殊字符的查詢? 例如,我有這樣的數據:「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 ')' –