广告
返回顶部
首页 > 资讯 > 数据库 >Mysql模糊查询中是否区分大小写
  • 292
分享到

Mysql模糊查询中是否区分大小写

2023-06-15 12:06:52 292人浏览 独家记忆
摘要

这篇文章将为大家详细讲解有关Mysql模糊查询中是否区分大小写,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。COLLATE通常是和数据编码(CHARSET)相关的,一般来说每种CHARSET

这篇文章将为大家详细讲解有关Mysql模糊查询中是否区分大小写,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

COLLATE通常是和数据编码(CHARSET)相关的,一般来说每种CHARSET都有多种它所支持的COLLATE,并且每种CHARSET都指定一种COLLATE为默认值。例如latin1编码的默认COLLATE为latin1_swedish_cigbk编码的默认COLLATE为gbk_chinese_ciutf8mb4编码的默认值为utf8mb4_general_ci

CHSRSETCOLLATE
latin1latin1_swedish_ci
gbkgbk_chinese_ci
utf8mb4utf8mb4_general_ci
utf8utf8_bin

有兴趣的小伙伴,可以在navicate等数据库可视化工具中,自己尝试一下:

Mysql模糊查询中是否区分大小写
Mysql模糊查询中是否区分大小写
Mysql模糊查询中是否区分大小写
Mysql模糊查询中是否区分大小写

注意Mysql中有utf8utf8mb4两种编码,但是mysql中的utf8最多只能支持3bytes长度的字符编码,所以,建议大家还是选择utf8mb4编码格式;

解决方法一

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

Mysql模糊查询中是否区分大小写

区分大小写

Mysql模糊查询中是否区分大小写

建表语句也采用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;

Mysql模糊查询中是否区分大小写

数据库内容

Mysql模糊查询中是否区分大小写

查询结果 select * from t_blog where title like ‘%html%';

Mysql模糊查询中是否区分大小写

select * from t_blog where title like ‘%HTML%';

Mysql模糊查询中是否区分大小写 

结论:

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

不区分大小写

Mysql模糊查询中是否区分大小写

建表语句

建表语句也采用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;

Mysql模糊查询中是否区分大小写

数据库内容

Mysql模糊查询中是否区分大小写

查询结果 select * from t_blog where title like ‘%html%';

Mysql模糊查询中是否区分大小写select

* from t_blog where title like ‘%HTML%';

Mysql模糊查询中是否区分大小写 

结论

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

解决方法二

 区分大小写

方法

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

Mysql模糊查询中是否区分大小写

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

结论

select * from t_blog where title like ‘%HTML%';

Mysql模糊查询中是否区分大小写

select * from t_blog where title like ‘%html%';

Mysql模糊查询中是否区分大小写

由上述执行结果可以看出,此方法可以使模糊查询语句区分大小写

 不区分大小写

方法

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

Mysql模糊查询中是否区分大小写

alter table t_blog CHANGE `title` `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL;

结论 select * from t_blog where title like ‘%HTML%';

Mysql模糊查询中是否区分大小写

select * from t_blog where title like ‘%html%';

Mysql模糊查询中是否区分大小写

由上述执行结果可以看出,此方法可以使模糊查询语句不区分大小写

解决办法三

区分大小写

方法

如图所示,当前 ‘t_blog' 表格的 ‘title' 字段的 COLLATE 为 ‘utf8mb4_general_ci' ,不区分大小写

Mysql模糊查询中是否区分大小写

修改字段为BINARY:

Mysql模糊查询中是否区分大小写

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%';

Mysql模糊查询中是否区分大小写

select * from t_blog where title like ‘%html%';

Mysql模糊查询中是否区分大小写

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

解决办法四

区分大小写

方法

如图所示,当前 ‘t_blog' 表格的 ‘title' 字段的 COLLATE 为 ‘utf8mb4_general_ci' ,不区分大小写

Mysql模糊查询中是否区分大小写

查询语句字段前面加BINARY:

select * from `t_blog` where BINARY `title` like '%html%';

结论

select * from t_blog where title like ‘%html%';

Mysql模糊查询中是否区分大小写

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

Mysql模糊查询中是否区分大小写

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

解决办法五

(特别特别不推荐,尽量不要使用)

找到mysql相应版本下的my.ini文件,本小白对应的8.0.17版本;

Mysql模糊查询中是否区分大小写
在文件最后一行加上下面一句话:

lower_case_table_names=1

注意:0:区分大小写,1:不区分大小写

关于Mysql模糊查询中是否区分大小写就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

您可能感兴趣的文档:

--结束END--

本文标题: Mysql模糊查询中是否区分大小写

本文链接: https://www.lsjlt.com/news/280124.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Mysql模糊查询中是否区分大小写
    这篇文章将为大家详细讲解有关Mysql模糊查询中是否区分大小写,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。COLLATE通常是和数据编码(CHARSET)相关的,一般来说每种CHARSET...
    99+
    2023-06-15
  • 深入探究Mysql模糊查询是否区分大小写
    前言 近期,一直在忙着写一个小小的个人博客项目,在实现 “全局搜索” 功能时,发现mysql模糊查询语句有点儿神奇(本小白刚刚步入编程阶段,所以可能让大家见笑了,哈哈哈),有时候 m...
    99+
    2022-11-12
  • Sql like模糊查询 区分大小写
    Sql模糊查询,Like默认是不区分大小写的 使用Like时,怎么支持大小写呢? upper、lower,只能模糊所有的内容,不能区分内容中的大小写。 sqlite数据库对text字段默认是大小写敏感的,但是唯独在模糊查询时不起作用。 解...
    99+
    2021-02-16
    Sql like模糊查询 区分大小写
  • mysql查询区分大小写吗
    本篇内容主要讲解“mysql查询区分大小写吗”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql查询区分大小写吗”吧! mysq...
    99+
    2022-10-19
  • mysql如何查询区分大小写
    这篇文章主要介绍mysql如何查询区分大小写,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 在mysql中,可以利用binary关键字查询区分大小写,该关...
    99+
    2022-10-19
  • mysql查询如何区分大小写
    这篇文章主要介绍mysql查询如何区分大小写,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 在mysql中,可以利用select查询语句配合bi...
    99+
    2022-10-19
  • ElasticSearch实现忽略大小写模糊查询
    1.引入依赖 <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-...
    99+
    2022-10-22
  • mysql中怎么实现查询区分大小写
    这期内容当中小编将会给大家带来有关mysql中怎么实现查询区分大小写,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。查询区分大小写的问题 mysql查询默认是不区...
    99+
    2022-10-18
  • MySql查询不区分大小写解决方案
    背景 当我们输入不管大小写都能查询到数据,例如:输入 lingyejun 或者Lingyejun ,LingYeJun都能查询同样的结果,说明查询条件对大小写不敏感。CREATE TABLE NAME(name VARCHAR(1...
    99+
    2023-09-05
    mysql 数据库 sql mybatis java
  • linux是否不区分大小写
    这篇文章主要介绍了linux是否不区分大小写,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在linux中,是区分大小写的;linux中的文件名、目录名、命令、命令选项、配置文...
    99+
    2023-06-29
  • 解决MySQL查询不区分大小写的方法
    本篇内容主要讲解“解决MySQL查询不区分大小写的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“解决MySQL查询不区分大小写的方法”吧!今天遇到一个情况,...
    99+
    2022-10-18
  • mysql中模糊查询语法怎么写
    这篇文章主要介绍了mysql中模糊查询语法怎么写,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。MySQL LIKE模糊查询我们知道在 MySQL...
    99+
    2022-10-18
  • javascript中方法名是否区分大小写
    这篇文章主要介绍“javascript中方法名是否区分大小写”,在日常操作中,相信很多人在javascript中方法名是否区分大小写问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2022-10-19
  • 解决MySQl查询不区分大小写的方法讲解
    问题 最近,在用SSH框架完成一个实践项目时,碰到了一个莫名其妙的Bug困扰了我好久,最后终于解决,记录如下。 问题:同学在测试系统的时候突然发现,数据库保存的账户本来应该是admin,结果该同学用Adm...
    99+
    2022-10-18
  • 怎么在mongodb中实现不区分大小写查询
    在mongodb中实现不区分大小写查询的方法:1.启动mongodb;2.登录mongodb数据库;3.使用数据库;4.通过设置$options属性实现不区分大小写;具体步骤如下:首先,在命令行中启动mongodb服务;net start ...
    99+
    2022-10-16
  • MySQL中存储的数据查询的时候如何区分大小写
    目录场景描述解决办法1. 查询时指定大小写敏感2. 定义表结构时指定字段大小写敏感3. 修改排序规则(COLLATE)COLLATE是用来做什么的?各种COLLATE的区别COLLATE 设置级别及其优先级总结场景描述 ...
    99+
    2023-04-06
    MySQL存储 MySQL数据查询 MySQL区分大小写
  • MySQL中存储的数据查询的时候怎么区分大小写
    这篇文章主要介绍了MySQL中存储的数据查询的时候怎么区分大小写的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MySQL中存储的数据查询的时候怎么区分大小写文章都会有所收获,下面我们一起来看看吧。场景描述今天在...
    99+
    2023-07-05
  • MySQL中存储的数据查询的时候区分大小写问题
    场景描述 今天在将 Hive 表同步到 MySQL 之后,其中有一列是唯一列,但是在 MySQL 中查询的时候 count 与 distinct count 查询出来的数值是不一样的,这么来看的话是有...
    99+
    2023-09-02
    mysql 数据库 hive
  • javascript变量命名是否区分大小写
    这篇文章主要介绍了javascript变量命名是否区分大小写,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 ja...
    99+
    2022-10-19
  • 在MySQL中怎么进行大小写查询
    这篇文章主要介绍“在MySQL中怎么进行大小写查询”,在日常操作中,相信很多人在在MySQL中怎么进行大小写查询问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”在MySQL中怎...
    99+
    2023-04-20
    mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作