Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Sqlite中实现重音/变音不敏感的搜索?_C#_Database_Sqlite_Search_Collation - Fatal编程技术网

C# 如何在Sqlite中实现重音/变音不敏感的搜索?

C# 如何在Sqlite中实现重音/变音不敏感的搜索?,c#,database,sqlite,search,collation,C#,Database,Sqlite,Search,Collation,有没有办法在sqlite中进行不区分重音/变音的搜索 谷歌搜索,我发现了,但我真的不知道如何用C创建我的排序功能。我正在尝试为Sqlite创建pt br排序规则…虽然可以编写自己的排序规则,但这可能比使用合适的系统提供的排序规则要慢——例如,SQL拉丁通用CP1 CI难道不能满足您的需要吗?如果是,只需在SELECT或CREATE表查询中使用合适的COLLATE子句即可。。。您应该已经准备好了。如果您使用的是System.Data.Sqlite,您可以使用自定义排序规则序列,并根据您的需要对其进

有没有办法在sqlite中进行不区分重音/变音的搜索


谷歌搜索,我发现了,但我真的不知道如何用C创建我的排序功能。我正在尝试为Sqlite创建pt br排序规则…

虽然可以编写自己的排序规则,但这可能比使用合适的系统提供的排序规则要慢——例如,SQL拉丁通用CP1 CI难道不能满足您的需要吗?如果是,只需在SELECT或CREATE表查询中使用合适的COLLATE子句即可。。。您应该已经准备好了。

如果您使用的是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查询可能如下所示: 从MyTable ORDER BY MyChineseColumn COLLATE MYSEQUENCE DESC中选择*

资料来源:

您只需在创建表时设置排序规则,并在该列上构建索引即可。
但请记住,您将无法从其他未定义排序规则的sqlite引擎访问表。

Doug的回答对您有帮助吗?如果是,请分享您是如何进行不区分重音/变音符号的搜索的?这种排序规则在SQlite中是否可用?