近期,一直在忙着写一个小小的个人博客项目,在实现 “全局搜索” 功能时,一直想让 “全局搜索” 功能实现**“区分大小写”**,方法介绍如下:
(在本小白的另外一篇博客中,介绍的比较详细,有兴趣的可以看一下:mysql模糊查询语句是否区分大小写?)

方法一:

设置“COLLATE”属性值为“utf8”,mysql采用utf8编码格式,模糊查询不区分大小写

方法二:

在创建表的时候,指定表字段COLLATE 为“utf8_bin”,或者修改指定表字段COLLATE 为“utf8_bin”;即,单独指定所需字段(比如,在此处 我所需要不区分大小写的字段为表 ‘t_blog’ 中的 ‘title’ 字段)为 ‘utf8’ 编码格式,COLLATE 为“utf8_bin”:

alter table t_blog CHANGE `title` `title` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL;
alter table `t_blog` modify column `title` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL;

(选择其中一种修改方法既可)

方法三

修改字段为BINARY:

alter table t_blog CHANGE `title` `title` varchar(255) BINARY NULL DEFAULT NULL;
alter table `t_blog` modify column `title` varchar(255) BINARY NULL DEFAULT NULL;

两种修改方式选择一种既可

方法四

  • 查询语句字段前面加BINARY:
select * from `t_blog` where BINARY `title` like '%html%';

还有一种修改mysql配置文件my.ini的方法,本小白非常不推荐此方法,所以在此不再介绍,有兴趣的小伙伴们可以了解一下:
mysql模糊查询语句是否区分大小写?

下面,对上述方法进行详细介绍:

解决方法一

如图所示,为了便于区分,让小伙伴们更好地理解,在此,本小白建立了两个一模一样的数据库,其中一个采用utf8编码格式,另外一个采用utf8mb4格式:

建表语句采用utf8编码格式:

建表语句
  • blog_test : utf8编码格式
SET NAMES utf8;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for t_blog
-- ----------------------------
DROP TABLE IF EXISTS `t_blog`;
CREATE TABLE `t_blog`  (`id` bigint(20) NOT NULL AUTO_INCREMENT,`appreciation` bit(1) NOT NULL,`comment_tabled` bit(1) NOT NULL,`content` longtext CHARACTER SET utf8 COLLATE utf8_bin NULL,`create_time` datetime(0) NULL DEFAULT NULL,`first_picture` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,`flag` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,`published` bit(1) NOT NULL,`recommend` bit(1) NOT NULL,`share_statement` bit(1) NOT NULL,`title` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,`update_time` datetime(0) NULL DEFAULT NULL,`views` int(11) NULL DEFAULT NULL,`type_id` bigint(20) NULL DEFAULT NULL,`user_id` bigint(20) NULL DEFAULT NULL,`description` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE,INDEX `FK292449gwg5yf7ocdlmswv9w4j`(`type_id`) USING BTREE,INDEX `FK8ky5rrsxh01nkhctmo7d48p82`(`user_id`) USING BTREE,CONSTRAINT `FK292449gwg5yf7ocdlmswv9w4j` FOREIGN KEY (`type_id`) REFERENCES `t_type` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT,CONSTRAINT `FK8ky5rrsxh01nkhctmo7d48p82` FOREIGN KEY (`user_id`) REFERENCES `t_user` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 14 CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

数据库内容

查询结果
  • select * from t_blog where title like ‘%html%’;
  • select * from t_blog where title like ‘%HTML%’;
结论:

mysql采用utf8编码格式,模糊查询区分大小写

解决方法二

方法

单独指定所需字段(比如,在此处 我所需要区分大小写的字段为表 ‘t_blog’ 中的 ‘title’ 字段)为 ‘utf8’ 编码格式,COLLATE 为“utf8_bin”;

alter table t_blog CHANGE `title` `title` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL;
alter table `t_blog` modify column `title` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL;
结论
  • select * from t_blog where title like ‘%HTML%’;
  • select * from t_blog where title like ‘%html%’;

    由上述执行结果可以看出,单独修改指定所需字段(比如,在此处 我所需要区分大小写的字段为表 ‘t_blog’ 中的 ‘title’ 字段)为 ‘utf8’ 编码格式,COLLATE 为“utf8_bin”,可以使模糊查询语句区分大小写

解决方法三

方法
  • 如图所示,当前 ‘t_blog’ 表格的 ‘title’ 字段的 COLLATE 为 ‘utf8mb4_general_ci’ ,不区分大小写
  • 修改字段为BINARY:
alter table t_blog CHANGE `title` `title` varchar(255) BINARY NULL DEFAULT NULL;
alter table `t_blog` modify column `title` varchar(255) BINARY NULL DEFAULT NULL;

两种修改方式选择一种既可

结论
  • select * from t_blog where title like ‘%HTML%’;
  • select * from t_blog where title like ‘%html%’;

    由上述执行结果可以看出,修改字段为BINARY,可以使模糊查询语句区分大小写

解决办法四

方法
  • 如图所示,当前 ‘t_blog’ 表格的 ‘title’ 字段的 COLLATE 为 ‘utf8mb4_general_ci’ ,不区分大小写
  • 查询语句字段前面加BINARY:
select * from `t_blog` where BINARY `title` like '%html%';
结论
  • select * from t_blog where title like ‘%html%’;

  • select * from t_blog where BINARY title like ‘%html%’;

由上述执行结果可以看出,在查询语句字段前面加BINARY,可以使模糊查询语句区分大小写

本小白还有很多地方讲解的不够清楚明了,还请各位大佬指教!想更深入了解的可以参考大佬的博客(膜拜膜拜)mysql区分大小写

mysql模糊查询语句区分大小写相关推荐

  1. mysql模糊查询语句怎么不区分大小写

    近期,一直在忙着写一个小小的个人博客项目,在实现 "全局搜索" 功能时,一直想让 "全局搜索" 功能实现**"不区分大小写"**,方法介绍如 ...

  2. mybatis mysql 模糊查询语句_mybatis+Spring mysql的模糊查询问题

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 查询的mapping.xml语法 resultType="java.lang.Integer"> SELECT count(yy ...

  3. mybatis mysql 模糊查询语句_mybatis模糊查询语句及注意事项

    select count(*) from t_user loginacct like concat("%",#{queryText},"%") 1.动态查询语句 ...

  4. mysql语句模糊查询_mysql模糊查询语句是什么?

    mysql模糊查询语句是什么? 模糊查询语句如下:"SELECT 字段 FROM 表 WHERE 某字段 Like 条件". mysql提供了四种匹配模式: 1.% 表示任意0个或 ...

  5. mysql 模糊 语句_MySQL模糊查询语句整理集合

    sql模糊查询语句 一般模糊语句语法如下: select 字段 from 表 where 某字段 like 条件 其中关于条件,sql提供了四种匹配模式: 1.%:表示任意0个或多个字符.可匹配任意类 ...

  6. mysql设置不区分大小写

    mysql设置不区分大小写 1.windows下 到安装mysql的目录,修改my.ini文件 在文件最后一行加上下面一句话 lower_case_table_names=1 lower_case_t ...

  7. 使mysql查询条件区分大小写 数据库搜索中大小写敏感性

    在默认情况下,mysql搜索不区分大小写(但某些字符集始终区分大小写,如czech).这意味着,如果你使用col_name LIKE 'a%'进行搜索,你将获得以A或a开始的所有列. 如果打算使搜索区 ...

  8. mysql select 区分大小写,MySql查询不区分大小写解决方案(两种)

    当我们输入不管大小写都能查询到数据,例如:输入 aaa 或者aaA ,AAA都能查询同样的结果,说明查询条件对大小写不敏感. 解决方案一: 于是怀疑Mysql的问题.做个实验:直接使用客户端用sql查 ...

  9. mysql的collation区分大小写设置

    mysql的collation区分大小写设置 mysql数据库在做查询时候,有时候是英文字母大小写敏感的,有时候又不是的,主要是由于mysql的字符校验规则的设置.通常默认是不支持的大小写字母敏感的, ...

最新文章

  1. 大数据基础设施建设需要得到重视 | 记清华大数据“应用·创新”讲座
  2. 分布式监控报警平台Centreon之:Centreon安装(1)
  3. jQuery幻灯片skitter-slider插件学习总结
  4. 【DIY】嫌arduino太贵?太大?试试ATTINY85!DIY温湿度计入门级教程请收下
  5. Envoy实现.NET架构的网关(一)静态配置与文件动态配置
  6. AI算法连载17:统计之半监督学习
  7. AnalyticDB for PG 如何作为数据源对接帆软 FineBI
  8. python下雨动画特效_pygame用blit()实现动画效果
  9. notepad++ 查找引用(Find Reference)(适用于c c++及各类脚本比如lua、python等)
  10. python 乘法内置函数_Python内置函数--reversed()
  11. PHPMailer如何获取QQ邮箱授权码
  12. 【仿真】Proteus8.9 下载与安装教程(超详细)
  13. php怎么把多个pdf拼接成一个,两张pdf合并成一页 怎么将pdf文件中的页面进行拼接?两页或多页pdf拼接...
  14. 37个 safari 快捷键,让Mac网页浏览更方便
  15. Hadoop经典书籍资料收藏(35本)转
  16. P3320 [SDOI2015]寻宝游戏
  17. vue.js毕业设计,基于vue.js前后端分离在线教育视频点播系统设计与实现(H5移动项目)
  18. Python语言程序设计第二章编程题
  19. Vue3 Application died in status LOADING_SOURCE_CODE: You need to export the functional lifecycles in
  20. freemarker生成word文档,通过libreoffice完美转为pdf文件排版不乱(包含调用浏览器打印pdf)

热门文章

  1. 网易云信流媒体首席架构师:新一代音视频技术架构如何构建?
  2. 【Python】 python读取Json文件
  3. mysql8 json 索引
  4. 在linux下QT设计实现视频播放器
  5. c语言怎么在doc运行,C语言位运行.doc
  6. macbook pro safari无法打开网页
  7. D盾让隐藏账户无所遁形
  8. 计算机一指弹360安全中心,360安全中心-360系统急救箱 _360安全中心
  9. java创建mysql sche_爱可生详解MySQL|入门必看DBLE中间件使用指南第一章:初识DBLE...
  10. 中小企业使用财务软件有以下好处