菜单

SQLite字符串相比时的高低写标题消除办法

2019年6月14日 - MySQL

MySQL字符串大小写通常会让大家在登记网址时受困了注册名的大大小小写,出现这些难点的原因是:MySQL在询问字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为私下认可的字符集,那一个字符集对MySQL字符串大小写不灵活,因而在相比进程中中文编码字符大小写调换变成了这种MySQL字符串大小写的标题。

绝大大多数据库在拓展字符串比较的时候,对大小写是不灵动的。不过,前段时间应用SQLite的时候,却开掘它的图景恰好相反。

方法一:

假定表User的结交涉值如下:

消除方法是对于富含普通话的字段加上”binary”属性,使之作为二进制相比,比如将”name
char(10)”改成”name char(10)binary”。

  UserName
1 User1

方法二:

推行下边包车型的士SQL语句:

如若你选择源码编写翻译MySQL,能够编写翻译MySQL时行使–with–charset=gbk
参数,那样MySQL就能直接协理普通话寻觅和排序了。

复制代码 代码如下:

方法三:

SELECT * FROM [User] WHERE UserName = ‘user1’

能够采纳 Mysql 的 locate 函数来推断。以上述难点为例,使用办法为:
SELECT * FROM table WHERE locate(field,’李’) > 0;

结果是不曾找到其它记录。显然地,SQLite在开始展览字符串相比的时候,暗中同意对大小写是乖巧的。那会对应用程序产生不好的影响。比如,用户在输入用户名的时候必须严苛依据大小写输入,那是一种很不佳的用户体验;用户表中恐怕还要设有
user 和 USE奥迪Q7 八个用户,轻便导致混淆。

方法四:
把你的Select语句改成这么,SELECT * FROM TABLE WHERE FIELDS LIKE BINARY
‘%FIND%’即可!

由于SQLite是这两天才兴起的数据库,中文资料少得很。谷歌了有些英文材质,终于找到了两种缓和方案:

方法五:
假诺您在Windows下行使已经编写翻译好的MySQL,能够修改My.ini中的字符集选项。
default-character-set = gb2312

方案一:使用大小写调换函数LOWEKuga、UPPEPAJERO

假若是投机的服务器使用win系统,方法五是最棒的法子!如果是linux系统,能够使用办法二!如若不是自个儿的对讲机,能够应用情势一,那样您的用户名是严苛区分轻重缓急写的!

复制代码 代码如下:

MySQL分割字符串的落到实处

SELECT * FROM [User] WHERE LOWER(UserName) = ‘user1’

MySQL replace函数替换字符串

方案二:在开始展览比较时强制表明不区分轻重缓急写

MySQL字符串连接函数用法简要介绍

复制代码 代码如下:

mysql查询大小写标题

SELECT * FROM [User] WHERE UserName = ‘user1’ COLLATE NOCASE

教您怎么兑现MySQL全文查询

方案三:创设表时表明该字段不区分轻重缓急写

http://www.bkjia.com/Mysql/578974.htmlwww.bkjia.comtruehttp://www.bkjia.com/Mysql/578974.htmlTechArticleMySQL字符串大小写经常会让我们在注册网站时受困了注册名的大小写,出现这个问题的原因是:MySQL在查询字符串时是大小写不敏感的,在编

复制代码 代码如下:

CREATE TABLE [User] ( [UserName] NVARCHAR(20) COLLATE NOCASE );

假设在其他动静下都无需对大小写敏感,方案三是最棒的消除方案;假设只是为数十分的少询问对大小写不敏感,能够用方案二。而方案一由于采纳了函数,恐怕有额外的个性损失,不推荐使用。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图