mysql模糊查询语句怎么不区分大小写
近期,一直在忙着写一个小小的个人博客项目,在实现 “全局搜索” 功能时,一直想让 “全局搜索” 功能实现**“不区分大小写”**,方法介绍如下:
(在本小白的另外一篇博客中,介绍的比较详细,有兴趣的可以看一下:mysql模糊查询语句是否区分大小写?)
方法一:
设置“COLLATE”属性值为“utf8_general_ci”,mysql采用utf8mb4编码格式,模糊查询不区分大小写
方法二:
在创建表的时候,指定表字段COLLATE 为“utf8_general_ci”,或者修改指定表字段COLLATE 为“utf8_general_ci”;即,单独指定所需字段(比如,在此处 我所需要不区分大小写的字段为表 ‘t_blog’ 中的 ‘title’ 字段)为 ‘utf8mb4’ 编码格式,COLLATE 为“utf8_general_ci”:
alter table t_blog CHANGE `title` `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL;
alter table `t_blog` modify column `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL;
(选择其中一种修改方法既可)
还有一种修改mysql配置文件my.ini的方法,本小白非常不推荐此方法,所以在此不再介绍,有兴趣的小伙伴们可以了解一下:
mysql模糊查询语句是否区分大小写?
下面,对上述方法进行详细介绍:
解决方法一
如图所示,为了便于区分,让小伙伴们更好地理解,在此,本小白建立了两个一模一样的数据库,其中一个采用utf8编码格式,另外一个采用utf8mb4格式:
建表语句
建表语句采用utf8mb4编码格式:
- blog_test2 : utf8mb4编码格式
SET NAMES utf8mb4;
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 utf8mb4 COLLATE utf8mb4_general_ci NULL,`create_time` datetime(0) NULL DEFAULT NULL,`first_picture` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,`flag` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,`published` bit(1) NOT NULL,`recommend` bit(1) NOT NULL,`share_statement` bit(1) NOT NULL,`title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci 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 utf8mb4 COLLATE utf8mb4_general_ci 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 = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
数据库内容
查询结果
- select * from
t_blog
wheretitle
like ‘%html%’;
- select * from
t_blog
wheretitle
like ‘%HTML%’;
结论
mysql采用utf8mb4编码格式,模糊查询不区分大小写
解决方法二
方法
单独指定所需字段(比如,在此处 我所需要不区分大小写的字段为表 ‘t_blog’ 中的 ‘title’ 字段)为 ‘utf8mb4’ 编码格式,COLLATE 为utf8mb4_bin:
alter table t_blog CHANGE `title` `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL;
alter table `t_blog` modify column `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL;
结论
- select * from
t_blog
wheretitle
like ‘%HTML%’;
- select * from
t_blog
wheretitle
like ‘%html%’;
由上述执行结果可以看出,单独指定所需字段(比如,在此处 我所需要不区分大小写的字段为表 ‘t_blog’ 中的 ‘title’ 字段)为 ‘utf8mb4’ 编码格式,COLLATE 为utf8mb4_bin,可以使模糊查询语句不区分大小写;
本小白还有很多地方讲解的不够清楚明了,还请各位大佬指教!想更深入了解的可以参考大佬的博客(膜拜膜拜)mysql区分大小写
mysql模糊查询语句怎么不区分大小写相关推荐
- mysql模糊查询语句区分大小写
近期,一直在忙着写一个小小的个人博客项目,在实现 "全局搜索" 功能时,一直想让 "全局搜索" 功能实现**"区分大小写"**,方法介绍如下 ...
- mybatis mysql 模糊查询语句_mybatis+Spring mysql的模糊查询问题
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 查询的mapping.xml语法 resultType="java.lang.Integer"> SELECT count(yy ...
- mybatis mysql 模糊查询语句_mybatis模糊查询语句及注意事项
select count(*) from t_user loginacct like concat("%",#{queryText},"%") 1.动态查询语句 ...
- mysql语句模糊查询_mysql模糊查询语句是什么?
mysql模糊查询语句是什么? 模糊查询语句如下:"SELECT 字段 FROM 表 WHERE 某字段 Like 条件". mysql提供了四种匹配模式: 1.% 表示任意0个或 ...
- mysql 模糊 语句_MySQL模糊查询语句整理集合
sql模糊查询语句 一般模糊语句语法如下: select 字段 from 表 where 某字段 like 条件 其中关于条件,sql提供了四种匹配模式: 1.%:表示任意0个或多个字符.可匹配任意类 ...
- MySQL查询字段区不区分大小写? innodb的事务与日志的实现方式?binlog的几种日志录入格式以及区别?
MySQL查询字段区不区分大小写? MySQL innodb的事务与日志的实现方式 MySQL binlog的几种日志录入格式以及区别 MySQL查询字段区不区分大小写? 答案是不区分 如何解决需要区 ...
- mysql 如何解决字段不区分大小写的问题
mysql 如何解决字段不区分大小写的问题 参考文章: (1)mysql 如何解决字段不区分大小写的问题 (2)https://www.cnblogs.com/pansidong/p/7991344. ...
- mysql mybatis模糊查询语句_详解MyBatis模糊查询LIKE的三种方式
模糊查询也是数据库SQL中使用频率很高的SQL语句,使用MyBatis来进行更加灵活的模糊查询. 直接传参法 直接传参法,就是将要查询的关键字keyword,在代码中拼接好要查询的格式,如%keywo ...
- MySql like模糊查询语句用法
学习更多MySql语句:https://blog.csdn.net/weixin_45761237/category_11726248.html?spm=1001.2014.3001.5482 lik ...
最新文章
- 【组队学习】【28期】R语言数据科学
- Linux命令之乐--nmap
- PHP stripos strpos,strpos()和stripos()函数的区别
- 函数式接口@FunctionalInterface使用示例
- 403 forbidden nginx_5,Logstash正则提取Nginx日志 - pwcc
- 逻辑门的Verilog实现与仿真
- 手把手教你强化学习 (一) 什么是强化学习?与机器学习有什么区别?
- 递归定义以及斐波那契数列的实现
- 信息系统项目管理师计算题(进度管理总浮动时间、自由浮动时间、工期)
- Twaver-HTML5基础学习(3)基本数据元素(Data)其他功能函数以及组Group
- css 标记选择器,CSS标记选择器
- Unsupervised Domain Adaptation via Structurally Regularized Deep Clustering-CVPR2020
- 【NLP】NLP领域的国内外专家(Greedy_AI)
- 云服务器 ERP系统搭建,云服务器 ERP系统搭建
- 安卓app开发工具_最新app制作软件汇总:从零开始教你完成app开发
- 共享单车数据集超10万条
- 联想贺志强:智能互联网时代将有N倍速的产业新机遇
- 数据结构课程设计实验一:图书信息管理系统的设计与实现
- redis集群搭建参考文档
- OllyDbg 使用笔记 (十六)