mysql查询时字符串区分大小写问题
mysql默认情况下查询语句的where条件是不区分大小写的。
建表语句CREATE TABLE `test_users` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(30) NOT NULL DEFAULT "" COMMENT "姓名", PRIMARY KEY (`id`), KEY `idx_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT="用户表";
初始化语句INSERT INTO `test_users` (`id`, `name`) VALUES (1, "Abc"), (2, "abc"), (3, "sss");
默认不区分大小写select * from test_users where name = "abc";
输出结果
id
name
1
Abc
2
abc索引情况explain select * from test_users where name = "abc";
索引结果:
id
select_type
table
partitions
type
possible_keys
key
key_len
ref
rows
filtered
Extra
1
SIMPLE
test_users
NULL
ref
idx_name
idx_name
122
const
2
100
Using index
命中了索引index_name,并且type = const区分大小写的方法
区分大小写的方法有3种:字段前添加关键字: binary建表时字段加入关键字:binary修改字段字符集:方案一:查询条件字段前添加关键字:binary
查询语句select * from test_users where binary name = "abc";
输出结果
id
name
2
abc查询语句索引情况explain select * from test_users where binary name = "abc";
输出结果:
id
select_type
table
partitions
type
possible_keys
key
key_len
ref
rows
filtered
Extra
1
SIMPLE
test_users
NULL
index
NULL
idx_name
122
NULL
3
100
Using where; Using index
可以看出来命中了索引 idx_name,并且 type = index方案二:建表时字段加入关键字:binaryCREATE TABLE `test_users` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(30) binary NOT NULL DEFAULT "" COMMENT "姓名", PRIMARY KEY (`id`), KEY `idx_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT="用户表";
查询语句select * from test_users where name = "abc";
输出结果
id
name
2
abc查询语句索引情况explain select * from test_users where name = "abc";
输出结果:
id
select_type
table
partitions
type
possible_keys
key
key_len
ref
rows
filtered
Extra
1
SIMPLE
test_users
NULL
ref
idx_name
idx_name
122
const
1
100
Using index
可以看出命中了 idx_name索引,并且type = ref方案三:修改字段的字符序(collation)
字符集(character set)和字符序(collation)是两个东西, 一个字符集对应1个或者多个字符序。
可以通过SHOW COLLATION查看数据库支持的字符序,通过SHOW CHARACTER SET字符集SHOW COLLATION where collation like "utf8mb4_%"命令
Collation
Charset
Id
Default
Compiled
Sortlen
utf8mb4_general_ci
utf8mb4
45
Yes
Yes
1
utf8mb4_bin
utf8mb4
46
Yes
1
utf8mb4_unicode_ci
utf8mb4
224
Yes
8
utf8mb4_icelandic_ci
utf8mb4
225
Yes
8
utf8mb4_latvian_ci
utf8mb4
226
Yes
8
utf8mb4_romanian_ci
utf8mb4
227
Yes
8
utf8mb4_slovenian_ci
utf8mb4
228
Yes
8
utf8mb4_polish_ci
utf8mb4
229
Yes
8
utf8mb4_estonian_ci
utf8mb4
230
Yes
8
utf8mb4_spanish_ci
utf8mb4
231
Yes
8
utf8mb4_swedish_ci
utf8mb4
232
Yes
8
utf8mb4_turkish_ci
utf8mb4
233
Yes
8
utf8mb4_czech_ci
utf8mb4
234
Yes
8
utf8mb4_danish_ci
utf8mb4
235
Yes
8
utf8mb4_lithuanian_ci
utf8mb4
236
Yes
8
utf8mb4_slovak_ci
utf8mb4
237
Yes
8
utf8mb4_spanish2_ci
utf8mb4
238
Yes
8
utf8mb4_roman_ci
utf8mb4
239
Yes
8
utf8mb4_persian_ci
utf8mb4
240
Yes
8
utf8mb4_esperanto_ci
utf8mb4
241
Yes
8
utf8mb4_hungarian_ci
utf8mb4
242
Yes
8
utf8mb4_sinhala_ci
utf8mb4
243
Yes
8
utf8mb4_german2_ci
utf8mb4
244
Yes
8
utf8mb4_croatian_ci
utf8mb4
245
Yes
8
utf8mb4_unicode_520_ci
utf8mb4
246
Yes
8
utf8mb4_vietnamese_ci
utf8mb4
247
Yes
8
常用的字符序:utf8_general_ci & utf8mb4_general_ci: 不区分大小写 utf8_bin & utf8mb4_bin: 区分大小写
建表语句: CREATE TABLE `test_users3` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT "" COMMENT "姓名", PRIMARY KEY (`id`), KEY `idx_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT="用户表";
查询语句:select * from test_users where name = "abc";
输出结果
id
name
2
abc查询语句索引情况explain select * from test_users where name = "abc";
输出结果:
id
select_type
table
partitions
type
possible_keys
key
key_len
ref
rows
filtered
Extra
1
SIMPLE
test_users
NULL
index
NULL
idx_name
122
NULL
3
100
Using where; Using index
命中了索引idx_name,并且 type = index
自强与新生20世纪50年代,山东妇女扫盲运动掠影中国共产党从诞生之日起就把实现妇女解放促进男女平等写在奋斗的旗帜上。新中国成立初期,女性文盲率高于男性。1950年9月,第一次全国工农教育会议明确提出开展识字教育,逐步减少文盲。此
每日一词制度性交易成本打造市场化法治化国际化营商环境,降低制度性交易成本,提振市场主体信心,助力市场主体发展,稳定宏观经济大盘。那何为制度性交易成本呢?知识点制度性交易成本,是指因政府的各种制度工具所带
刘宋新帝被杀,刘义隆捡漏登基,托孤大臣却身死族灭宋廷接收到前方战败的消息,朝野震动,人心惶惶,徐羡之傅亮谢晦三位辅政大臣愧疚无比,先后上表自劾。宋少帝刘义符只知道游玩嬉戏,不理政事,只说了一句毋庸议处,便没了下文。内外朝臣担心魏
银行集体清理门户,你中招了吗?清理信用卡沉睡卡,银行动真格了。3月20日起,中国银行将对连续18个月及以上无主动交易且无任何未偿款项和存款的长期睡眠信用卡进行降额停用或销卡等处理。此前,建行招行平安民生北京浦发
27万亿元银行理财市场发生这些新变化,快来了解一下银行理财产品是不少人打理钱袋子的重要选择。2022年是资管新规过渡期结束后行业转型发展的首个年份。这一年,银行理财市场有哪些新变化?对你我的投资理财有哪些影响?透过银行业理财登记托
涟源农商银行组织开展消保专题培训红网时刻娄底3月1日讯(通讯员彭玉婷)培训进行时,充电再出发。近日,在银行保险机构消费者权益保护管理办法正式实施之际,涟源农商行组织了为期3天的银行保险机构消费者权益保护管理办法及
中孚数据安全风险评估防患于未然,护航数据安全规划建设2022年12月,蔚来汽车确认,因服务器配置错误导致百万条用户信息泄露,并遭受225万美元等额比特币的勒索。蔚来创始人董事长首席执行官李斌就数据泄露一事公开致歉。2023年1月,英
连锁门店股权激励怎么做?连锁门店常见的有餐饮酒店超市服装店熟食店汽车4S店等,这些门店和我们的生活息息相关,也是连锁企业利润的主要来源。连锁企业拥有一定数量的门店(通常为5家或以上)之后,产品和管理日益成
媒体两会关注广电运通奏响高质量发展奋进曲高质量发展是全面建设社会主义现代化国家的首要任务。今年政府工作报告提出,要坚持稳字当头稳中求进,保持政策连续性针对性,加强各类政策协调配合,形成共促高质量发展合力。两会期间,信息时
退休人员养老金连续上调,2023年养老金调整,是按工龄上涨吗?视频加载中根据公开报道,2023年国务院政府工作报告已经发布,政府工作报告中指出,五年来切实保障和改善民生,加快社会事业发展,其中加强社会保障服务部分包含四个方面一是,建立基本养老
3月10日深夜,中国传来26个新消息,专家张捷反对养老金年年上涨26经济学家张捷教授反对养老金年年上涨!对此,你们大家怎么看?网友1用年轻人的钱养老人,老人的收入比很多年轻人都要多。确实,不能太过了,年轻人的压力非常大,很多人不敢生育了,带来一
孙悦前妻陈露近况!35岁穿着如少女,携女儿出游陌生男子全程陪同孙悦和陈露这对金童玉女的恋情令人羡慕,两人无论是颜值还是才华,都是天造地设的一对。作为昔日湖人队的一员,孙悦也跟随紫金军团拿到了总冠军戒指,这也让当时作为女友的陈露对他崇拜至极,随
深圳军科整形医院注射隆鼻和手术隆鼻,如何选择?一般女孩尝试整形的第一刀,一般来说是双眼皮,而注射整形初体验,一般来说是隆鼻。早就有话说,面部一枝花,全靠鼻当家。鼻子在面部的中心,可以说是扛起面部立体感的颜值担当。隆鼻手术是目前
快和慢当代社会有一个问题,就是快。大概是都体会到了世事无常,人生苦短,导致人们对幸福渴望的急,对寻欢作乐的急,于是乎,男女巴不得第一次见面就牵手,第二次接物,第三次上床。高铁的快,网络的
一只被追捕的茑鸟短的是利欲,长的是人生。作者洞见yebo有一只茑鸟,刚从河里叼起一条鱼。结果被一群乌鸦看见了,它们也想要这条鱼,于是跟在茑鸟后面穷追不舍。为了躲开鸦群的攻击,茑鸟拼命地飞行。直到精
猕猴桃之都的成功秘密外来物种成就新西兰最富裕小镇新西兰的风景和空气,为全世界人所向往。纯天然的地方,自然少不了大自然的馈赠,水果森林农产品在此竞相繁衍,新西兰也靠农业大获成功,取得了惊人的经济发展。蓝裕文化工业旅游设计院相信,有
篮网签约达成!纳什引发不满,西蒙斯略显尴尬,蔡老板压力不小这几个赛季的篮网,用动荡来形容他们的处境再适合不过了。篮网的纸面实力放眼联盟一直是数一数二的,可他们所取得的成绩却非常一般。甚至在前一个赛季,他们还需要通过附加赛才赢得了一个季后赛
你是我最美的牵挂你有点像天上的月亮只有天上的月亮才比得上你的冰清玉洁你含笑的眼睛有点像天上的星星不知藏着多少深情你是花丛里的蝴蝶你是百合中的蓓蕾你是我心中最美的牵挂娇艳中透着纯朴清纯中闪烁着典雅在
人到中年,看淡一切,方得圆满苏轼曾有诗云雪沫乳花浮午盏,蓼茸蒿笋试春盘。人间有味是清欢。那是元丰七年,冬雨过后,他与友人同游南山,喝着漂浮雪白泡沫的清茶,吃着初露嫩芽的山间野菜,心中恬淡畅快。此刻的他,历经人
因为一段话而看了一本书,挺值的昨天刚看完这本书,当时是因为刷到了其中的一段话觉得还不错便找到了这本书,没想到一看就停不下来,下面是吸引我看这本书的一段话没怎么练过字哈哈当时看到这段话的时候挺有感触的,可能是因为
小舞大腿白丝火了,上面一串发光字母引热议,到底有啥特殊含义文次元小木一个有颜值却要靠才华吃饭的二次元斗罗大陆算是为数不多可以保持年更的动漫,不过与此同时也导致动画中出现许多穿帮镜头。像天斗皇宫时柳二龙身前突然消失的布料,荣荣的黑白丝转换等
喜鹊坐在树枝上作者郭继明斑驳的树枝上坐着一只喜鹊正一片一片的数着云彩也许对寒风阵阵无所顾忌独自仰望和追寻记忆中的远方从身边飘过坠落的枯叶竟没有从中读出早来的秋凉如果不是感受到真切的寒潮它痴痴的以