日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql模糊查询语句区分大小写

發布時間:2024/3/24 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql模糊查询语句区分大小写 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


近期,一直在忙著寫一個小小的個人博客項目,在實現 “全局搜索” 功能時,一直想讓 “全局搜索” 功能實現**“區分大小寫”**,方法介紹如下:
(在本小白的另外一篇博客中,介紹的比較詳細,有興趣的可以看一下: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模糊查询语句区分大小写的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。