c# – 使用LIKE表达式时SQLite中的土耳其语字符

c# – 使用LIKE表达式时SQLite中的土耳其语字符,第1张

概述select *from urunler where musteri like %ir%; 测试数据: +---musteri---+---ID--++-------------+-------+ +---İrem------+---1---+ +---Kadir-----+---2---+ +---Demir-----+---3---+ 返回结果: KadirDemir 如果使用%rr
select *from urunler where musteri like %ir%;

测试数据:

+---musteri---+---ID--++-------------+-------+ +---İrem------+---1---+ +---Kadir-----+---2---+ +---Demir-----+---3---+

返回结果:

KadirDemir

如果使用%rr%然后İrem正在返回,但卡迪尔和Demir没有返回.其他土耳其人的角色也有同样的问题,但没有任何确切的解决方案.我正在编程单声道androID.

[sqliteFunction(name = "toupper",Arguments = 1,FuncType = FunctionType.Scalar)]    public class toupper: sqliteFunction    {        public overrIDe object Invoke(object[] args)        {            return args[0].ToString().toupper();        }    }           [sqliteFunction(name = "ColLATION_CASE_INSENSITIVE",FuncType = FunctionType.Collation)]    class CollationCaseInsensitive : sqliteFunction {        public overrIDe int Compare(string param1,string param2) {            return String.Compare(param1,param2,true);        }    }       toupper.RegisterFunction(typeof(toupper));

用这种方式解决了,还单声道c#’使用了库,这里是我需要做的AndroID.Database.sqlite.sqliteDatabase

解决方法 针对此类问题的一种解决方案是将文本的规范化版本保存到另一列中.在INSERT文本之前,用一些常用字符替换所有特殊字符,并将两个版本放在数据库中.

你的桌子就像那样

ID   musteri     musteri_normalized---  ----------  ------------------1    İrem        Irem              2    Kadir       Kadir             3    yapılcağ    yAPIlcag

现在,您可以在规范化列上使用liKE比较,并仍然从数据库返回实际文本.

SELECT musteri FROM @R_403_5991@ WHERE musteri_normalized liKE '%ir%';-> İrem,Kadir
总结

以上是内存溢出为你收集整理的c# – 使用LIKE表达式时SQLite中的土耳其语字符全部内容,希望文章能够帮你解决c# – 使用LIKE表达式时SQLite中的土耳其语字符所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/langs/1249338.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存