mysql查询包含小写字母_详解MySQL查询时区分字符串中字母大小写的方法-程序员宅基地

技术标签: mysql查询包含小写字母  

如果你在mysql有唯一约束的列上插入两行值'A'和'a',Mysql会认为它是相同的,而在oracle中就不会。就是mysql默认的字段值不区分大小写?这点是比较令人头痛的事。直接使用客户端用sql查询数据库。 发现的确是大小不敏感 。

通过查询资料发现需要设置collate(校对) 。

collate规则:

*_bin: 表示的是binary case sensitive collation,也就是说是区分大小写的

*_cs: case sensitive collation,区分大小写

*_ci: case insensitive collation,不区分大小写

关于字符集与校验规则,mysql能:

1、使用字符集来存储字符串,支持多种字符集;

2、使用校验规则来比较字符串,同种字符集还能使用多种校验规则来比较;

3、在同一台服务器、同一个数据库或者甚至在同一个表中使用不同字符集或校对规则来混合组合字符串;

4、可以在任何级别(服务器、数据库、表、字段、字符串),定义不同的字符集和校验规则。

强制区分大小写

可以通过binary关键字,方法有两种:

第一种:让mysql查询时区分大小写

select * from usertable where binary id='AAMkADExM2M5NjQ2LWUzYzctNDFkMC1h';

第二种:在建表时加以标识

create table `usertable`(

`id` varchar(32) binary,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `usertable` (

`id` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

在mysql中,存在大小写问题的地方还有:(1) 关键字: 不区分大小写 select * fRom table_name 和 select * from table_name 效果是一样的

(2) 标示符(如数据库名称和表名称):不区分大小写。如存在表users,那么select * from users和select * from uSers 效果一样。网上说这跟操作系统有关,在所有Unit操作系统(除了使用HFS+的Mac OS 之外)上都是区分大小写的,而在windows上是不区分大小写的。(网上的这一说法没有验证过,我在windows server2003上是不区分大小写的)

(3) 表的别名:不区分大小写 select m.* from users m where M.username = 'aa';

(4) 列的别名:不区分大小写 select uName from (select username as uname from users where id = 768) ;

本文标题: 详解MySQL查询时区分字符串中字母大小写的方法

本文地址: http://www.cppcns.com/shujuku/mysql/150182.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39580682/article/details/113234399

智能推荐

JavaScript题目练习-程序员宅基地

文章浏览阅读3k次。1、以下哪一条Javascript语句会产生运行错误?正确答案: A 你的答案: D (错误)A var obj=( );B var obj=[ ];C var obj={ };D var obj=/ /;2、触摸事件包括以下哪几种?()正确答案: A B C D 你的答案: A B D (错误)touchStarttouchMovetouchCanceltouchEnd解析:以下是四种touch事件touchstart: //手指放到屏幕上时触发touc_javascript题目

基于MATLAB BP神经网络的数字图像识别_bp神经网络如何用于图像检测-程序员宅基地

文章浏览阅读848次,点赞20次,收藏25次。当前的刺激如果能与大脑中的模板相匹配,这个图像也就被识别了。但这种模型强调图像必须与脑中的模板完全符合才能加以识别,而事实上人不仅能识别与脑中的模板完全一致的图像,也能识别与模板不完全一致的图像。同时,人能识别的图像是大量的,如果所识别的每一个图像在脑中都有一个相应的模板,也是不可能的。图像技术的基础性研究,特别是结合人工智能与视觉处理的新算法,从更高水平提取图像信息的丰富内涵,成为人类运算量最大、直观性最强,与现实世界直接联系的视觉和“形象思维”这一智能的模拟和复现,是一个很难而重要的任务。_bp神经网络如何用于图像检测

django学生作业管理系统(源码+mysql+论文)-程序员宅基地

文章浏览阅读748次,点赞19次,收藏25次。此外,系统还可以记录学生的作业完成情况,为教师提供数据分析,帮助教师了解学生的学习进度和存在的问题,进而实施个性化教学策略。在数据库管理工具的选择上,使用了Navicat 11,这是一个用户友好且功能强大的数据库管理软件,它支持多种数据库系统,包括MySQL,并提供了图形化界面,使得数据库的管理和维护工作更加便捷。开发环境方面,我们选择了PyCharm作为主要的集成开发环境(IDE),它提供了丰富的Python开发工具和插件,支持Django框架,有助于提高开发效率和代码质量。系统的选题背景和意义。

分布式锁- redis zookeeper_redis zookeeper分布式锁-程序员宅基地

文章浏览阅读331次。分布式锁是一种用在分布式系统中实现同步和互斥访问的机制。_redis zookeeper分布式锁

【转】Oracle DBMS_SPACE-程序员宅基地

文章浏览阅读149次。文章转自:互联网Oracle DBMS_SPACEVersion 11.1GeneralPurpose This package provides segment space information not currently available through the standard views...._select argument_name, data_type, in_out, default_value from user_arguments a

ansible-playbook之shell模块_ansible playbook shell-程序员宅基地

文章浏览阅读7.4k次。常用命令:cmd:用接要执行的命令chdir: 切换目录cat shell.yml---- hosts: zsk gather_facts: no become: yes remote_user: root一、切换到目录执行命令 tasks: - name: '解压' shell: chdir: /data cmd: 'tar zxvf apache-tomcat-8.5.70.tar.gz'二、执行多个命令,用管道_ansible playbook shell

随便推点

Java重写Override和重载Overload_override和overwirte-程序员宅基地

文章浏览阅读1.3k次。转载请标明出处:http://blog.csdn.net/wu_wxc/article/details/51457528 本文出自【吴孝城的程序员宅基地】重写是子类对父类中允许访问的的方法的重新编写 重载是同一类中方法名相同,但返回值类型或参数有所不同的方法的重新加载Override(重写)package cn.wuxiaocheng;class Animal { public v_override和overwirte

swagger - Unable to scan documentation context default-程序员宅基地

文章浏览阅读2.5k次。网上有人说 @ApiModelProperty(name = “主键id”,notes = “主键id”) 注解在id上name是 主键id,改成 @ApiModelProperty(name = “id”) 问题能解决,亲测是不会受影响的,即使是存在中文也能正常解析,没解决问题的小伙伴可以试试。如上代码,存在2个名称,启动时同样会报Unable to scan documentation context default错误,解决方案就是改对应的名称,保证不重复。_unable to scan documentation context default

pc双网卡实现路由转发_【今夜想聊聊】组播路由协议PIMSM模式-程序员宅基地

文章浏览阅读774次。PIM概念PIM(Protocol Independent Multicast)称为协议无关组播,表示组播依靠的单播路由可以由静态路由、RIP、OSPF、IS-IS、BGP等提供,组播路由和单播路由协议无关,只要单播路由协议能产生所需路由表项,如:RPF检查即可。PIM的特点1.PIM协议的本质是:三层协议,协议号为1032.PIM路由器组播地址为:224.0.0.133.P..._win10双网卡 组播转发

低优先级MPTCP的设计和实现_mptcp demo-程序员宅基地

文章浏览阅读1.1k次,点赞5次,收藏10次。概要:本科毕业设计课题的内容是实现低优先级MPTCP,在实现过程中碰到的困难有点多,现在顺利完成了毕业论文的答辩,希望能够把自己的一些经验和教训总结一下,希望有这方面需要的同学可以有所参考,不用像我那么艰难。实验环境:VMware Workstation Pro 网上的破解版,之前电脑上装的版本有点问题,VMtools不能正常用,安装就直接在百度搜索是没什么问题的。测试环节使用的工具是mini..._mptcp demo

Android 应用程序设置上网白名单-程序员宅基地

文章浏览阅读87次。在 Android 设备上,您可以设置一个应用程序的上网白名单,以控制哪些应用程序可以访问互联网。这在某些情况下非常有用,例如,如果您希望限制某些应用程序在移动数据网络上使用流量,或者如果您想为特定的应用程序提供优先访问权限。请注意,这只是一个示例代码,您需要根据自己的实际需求进行适当的修改。另外,为了使上网白名单设置生效,您可能需要在应用程序的其他部分添加适当的逻辑,以根据您的需求启用或禁用特定的应用程序。然后,我们获取了当前活动的组件的名称,即。方法来设置应用程序的上网白名单,将其状态设置为。

分布式缓存系统架构进化:Dragonfly扩展为全新形态的龙蜥技术_fly 缓存-程序员宅基地

文章浏览阅读105次。随着技术的不断进步,分布式系统在处理大规模数据和高并发访问方面起着至关重要的作用。为了应对这一挑战,Dragonfly缓存系统架构经过全新升级,引入了一项名为龙蜥技术的扩展,以进一步提升其性能和可扩展性。龙蜥技术是一种基于分布式系统的缓存系统架构,它通过在多个节点之间分配数据和负载,实现了高效的数据访问和分布式计算。下面将详细介绍龙蜥技术的设计原理,并提供相应的源代码示例。_fly 缓存