欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

MySQL大小寫敏感的解決方案

張軍 3995 0

前言:對于MySQL的大小寫敏感的影響,筆者在一個小項目中深刻的體會到:當想要查詢一條數據時,總是出來兩條或多條,后來發現是大小寫敏感造成的原因,本文就該問題提出解決方案。


1.MySQL大小寫敏感的控制

mysql是通過lower_case_table_names參數來控制大小寫敏感的,該參數在[mysqld]結點下。具體的含義筆者從官網截了一張圖。

注:

①關于lower_case_table_names參數對表名稱或數據庫名稱大小寫敏感的控制。

②Unix下默認為0,也就是大小寫敏感的;Windows下默認為1,不敏感;macOS默認為2,存儲區分大小寫,但是在查詢時會轉換為小寫。

③對于在大小寫不敏感的系統(Windows和macOS)不能將該字段設置為0。

[mysqld]下配置

lower_case_file_system

表示當前系統文件是否大小寫敏感,只讀參數,無法修改。

ON  大小寫不敏感
OFF 大小寫敏感

lower_case_table_names

表示表名是否大小寫敏感,可以修改。

lower_case_table_names = 0時,mysql會根據表名直接操作,大小寫敏感。
lower_case_table_names = 1時,mysql會先把表名轉為小寫,再執行操作。

2.出現的問題

#1.Linux下默認lower_case_table_names=0,對表名的大小寫是敏感的。注:筆者數據版本為5.7.22。

注:lower_case_file_system:OFF表示大小寫敏感,ON表示大小寫不敏感。lower_case_table_names:0表示敏感,1表示不敏感。

#2.具體演示。

注:創建test表,并插入一條數據。

Case 1:

分析:

對比兩組查詢,可以知linux下,mysql默認對表名大小寫敏感。

Case 2:

分析:

利用‘Aa’和‘aa’查詢出相同的結果,說明查詢時對字段內容進行了轉換(大寫轉換成小寫),造成了這一現象。

Case 3:

分析:

在查詢時,對字段‘Name'也可查詢結果,表明在查詢時對字段的大小寫不敏感。

綜合以上幾個Case可得出如下結論:

①linux默認情況下,對數據庫名和表名的大小寫是敏感的,因為linux系統本身對大小寫就敏感。

字段內容大小寫不敏感。

列名大小寫不敏感。

對于上述出現的問題,對實際的業務還是有相應影響的,因此應尋找對應的解決方案。

3.字段內容及列名大小寫不敏感的解決方案

①創建表時,將字段標記為binary,二進制大小寫是敏感的。

②在查詢條件的字段前加binary,但是不建議這么做,因為會使字段索引失效

③建表時設置校對規則(collate)。

collate規則:

         *_bin: 表示的是binary case sensitive collation,也就是說是區分大小寫
         *_ci: case insensitive collation,不區分大小寫 。

④如果建表時校對規則未用*_bin,則可直接修改字段的屬性

alter table test3 modify name varchar(20) collate utf8_bin;

總結

只要在創建表的時候指定collate為utf8_bin,就可以實現大小寫敏感,如果建表時未指定,則可修改字段的校對規則,也可以實現大小寫敏感。

操作系統不同導致大小寫敏感不一致。我們在開發時,應該按大小寫敏感的原則去開發,這樣可以使開發的程序兼容不同的操作系統。因此,建議在開發測試環境下把lower_case_table_names的值設為0,便于在開發中就嚴格控制代碼大小寫敏感,提高代碼的兼容和嚴謹。

=========================================================


比你優秀的人比你還努力,你有什么資格不去奮斗!

__一個有理想的程序員。

=========================================================


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 97超级碰碰碰碰在线视频 | 国产精品毛片久久久久久 | 8mav福利视频在线播放 | 亚洲欧美视频一区 | 欧美精品第十页 | 日本黄色激情视频 | 亚洲精品在线免费观看视频 | 日本wwxx | 一级毛片一级毛片一级毛片一级毛片 | 中文字幕一区二区视频 | 久草视频在线资源站 | 日韩在线观看视频免费 | 国产精品1区 | 久久久欧美综合久久久久 | 手机在线观看亚洲国产精品 | 日本一区二区三区免费观看 | 91综合视频 | 久久久久国产精品免费免费搜索 | 欧美日韩午夜 | 精品国产91 | 毛片a区 | 亚洲激情一区 | 午夜丰满少妇高清毛片1000部 | 欧美一区二区大片 | 国产在线精品一区二区夜色 | 亚洲国产精品99久久久久久久久 | 精品免费久久久久欧美亚一区 | 黄免费在线观看 | 午夜在线亚洲男人午在线 | 日韩欧美高清 | 性做久久久久久免费观看欧美 | 伊人欧美 | 亚洲午夜精品一级在线 | 久久人人爽人人爽人人 | 三级做爰大爽视频 | 青娱乐视觉盛宴在线 | 免费观看一区二区 | 日韩欧美视频免费观看 | 亚洲一区黄色 | 欧美 日韩 中文 | 色3344|