2009-04-23 61 views
2

有沒有辦法在sqlite中進行重音/變音區不敏感搜索?如何在Sqlite中實現重音/變音不敏感搜索?

使用谷歌搜索,我發現this,但我真誠地不知道如何在C#中創建我的「整理功能」。我正在嘗試爲Sqlite創建pt-br歸類...

+1

Doug的答案對你有幫助嗎?如果是的話,請分享你如何設法做重音/變音不敏感搜索? – Trainee4Life 2011-04-18 13:10:30

回答

-2

雖然可以編寫自己的歸類,但這可能比使用合適的系統提供的歸檔更慢 - 不會SQL_Latin1_General_CP1_CI_AS滿足您的需求, 例如?如果是這樣,只需使用合適的COLLATE子句(即在您的SELECT或CREATE TABLE查詢中),並且您應該全部設置。

+1

這種排序規則甚至可以在SQlite中使用嗎? – Trainee4Life 2011-04-18 13:25:47

6

如果您正在使用System.Data.Sqlite您可以使用自定義排序順序,並修改它爲您的需求?一個例子:

/// <summary> 
/// User-defined collating sequence using the current UI culture. 
/// </summary> 
[SQLiteFunction(Name = "MYSEQUENCE", FuncType = FunctionType.Collation)] 
class MySequence : SQLiteFunction 
{ 
    public override int Compare(string param1, string param2) 
    { 
    return String.Compare(param1, param2, true); 
    } 
} 

你的SQL查詢中使用上面的威力自定義排序順序是這樣的: SELECT * FROM MyTable的ORDER BY MyChineseColumn COLLATE MYSEQUENCE DESC

(來源:http://sqlite.phxsoftware.com/forums/p/862/3779.aspx#3779

你只可以在創建表的設置整理和建立在塔指數t列。 但請記住,您將無法從未定義歸類的其他sqlite引擎訪問表。