2009-04-23 63 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引擎访问表。