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

歡迎訪問 生活随笔!

生活随笔

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

数据库

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

發布時間:2024/3/13 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 where title like ‘%html%’;
  • select * from t_blog where title 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 where title like ‘%HTML%’;

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

由上述執行結果可以看出,單獨指定所需字段(比如,在此處 我所需要不區分大小寫的字段為表 ‘t_blog’ 中的 ‘title’ 字段)為 ‘utf8mb4’ 編碼格式,COLLATE 為utf8mb4_bin,可以使模糊查詢語句不區分大小寫

本小白還有很多地方講解的不夠清楚明了,還請各位大佬指教!想更深入了解的可以參考大佬的博客(膜拜膜拜)mysql區分大小寫

總結

以上是生活随笔為你收集整理的mysql模糊查询语句怎么不区分大小写的全部內容,希望文章能夠幫你解決所遇到的問題。

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