91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

區別MySQL字段內容大小寫講解

發布時間:2020-04-28 11:47:50 來源:億速云 閱讀:525 作者:三月 欄目:MySQL數據庫

下文內容主要給大家帶來區別MySQL字段內容大小寫講解,這里所講到的知識,與書籍略有不同,都是億速云專業技術人員在與用戶接觸過程中,總結出來的,具有一定的經驗分享價值,希望給廣大讀者帶來幫助。

數據由Oracle 遷入MySQL ,由于之前Oracle區分大小寫,MySQL的配置使用了默認配置,導致一些數據導入失敗,有的唯一鍵報錯,沖突。

將測試過程記錄在下面。

數據庫版本:MySQL 5.7.11

引用他人博客中內容:

校對規則一般有這些特征:

  • 兩個不同的字符集不能有相同的校對規則。

  • 每個字符集有一個默認校對規則。例如,utf8默認校對規則是utf8_general_ci。

  • 存在校對規則命名約定:它們以其相關的字符集名開始,通常包括一個語言名,并且以_ci(大小寫不敏感)、_cs(大小寫敏感)或_bin(二元)結束。

查看支持的校驗規則:

區別MySQL字段內容大小寫講解

mysql> SHOW COLLATION like 'utf8%';
+--------------------------+---------+-----+---------+----------+---------+
| Collation                | Charset | Id  | Default | Compiled | Sortlen |
+--------------------------+---------+-----+---------+----------+---------+
| utf8_general_ci          | utf8    |  33 | Yes     | Yes      |       1 |
| utf8_bin                 | utf8    |  83 |         | Yes      |       1 |
| utf8_unicode_ci          | utf8    | 192 |         | Yes      |       8 |
...
| utf8mb4_general_ci       | utf8mb4 |  45 | Yes     | Yes      |       1 |
| utf8mb4_bin              | utf8mb4 |  46 |         | Yes      |       1 |
| utf8mb4_unicode_ci       | utf8mb4 | 224 |         | Yes      |       8 |
| utf8mb4_icelandic_ci     | utf8mb4 | 225 |         | Yes      |       8 |
查看本地的校驗規則:
mysql> show global variables like '%coll%';
+----------------------+--------------------+
| Variable_name        | Value              |
+----------------------+--------------------+
| collation_connection | utf8mb4_unicode_ci |
| collation_database   | utf8mb4_unicode_ci |
| collation_server     | utf8mb4_unicode_ci |
+----------------------+--------------------+

生產中數據庫使用的編碼為utf8mb4, 校驗規則為 utf8mb4_unicode_ci,對大小寫不敏感

如果需要大小寫敏感,需要將排序規則修改為utf8mb4_bin.

測試后結果:修改數據庫配置后,不會對已經存在的表造成影響,如要生效需要修改特定列的排序規則。優先級大概是這樣:列>表>數據庫>云服務器

有兩種方法使查詢區分大小寫:

  • 第一種方法為修改列級別的校驗規則為utf8mb4_bin

T表

CREATE TABLE `T` (
  `name` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
mysql> select * from T;
+------+
| name |
+------+
| YOU  |
| You  |
| you  |
| you  |
| yOU  |
+------+

T2表:將列校對規則修改為utf8mb4_bin

CREATE TABLE `T2` (
  `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
mysql> select * from T2;
+------+
| name |
+------+
| yOU  |
| you  |
+------+

查詢:

T:(未區分大小寫)

mysql> select * from T where name = 'you';
+------+
| name |
+------+
| YOU  |
| You  |
| you  |
| you  |
| yOU  |
+------+

T2:(已經區分大小寫)

mysql> select * from T2 where name = 'you';
+------+
| name |
+------+
| you  |
+------+
  • 第二種方法:  不修改配置,表結構,而使用如下的查詢語句:

T:(未修改表)

mysql> select * from T where name = binary'you';
+------+
| name |
+------+
| you  |
| you  |
+------+

對于以上關于區別MySQL字段內容大小寫講解,如果大家還有更多需要了解的可以持續關注我們億速云的行業推新,如需獲取專業解答,可在官網聯系售前售后的,希望該文章可給大家帶來一定的知識更新。

 

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

石城县| 都兰县| 金华市| 西和县| 科尔| 广东省| 永福县| 当雄县| 吉首市| 车致| 安多县| 鄂托克旗| 固安县| 临潭县| 呼伦贝尔市| 渝北区| 建昌县| 兴国县| 彭州市| 工布江达县| 乡宁县| 新安县| 拉孜县| 白银市| 新乐市| 江城| 台湾省| 通城县| 荆门市| 丹江口市| 临海市| 白玉县| 忻城县| 铜陵市| 黔南| 眉山市| 泊头市| 华阴市| 盐亭县| 滦南县| 开原市|