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

溫馨提示×

溫馨提示×

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

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

Mysql如何使得字段內容不區分大小寫

發布時間:2021-08-24 21:40:23 來源:億速云 閱讀:130 作者:chen 欄目:MySQL數據庫

本篇內容介紹了“Mysql如何使得字段內容不區分大小寫”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

造成存儲的時候按大小寫存儲,但是檢索的時候不區分大小寫. 這個也是在Oracle的默認情況不一致的,oracle 統一使用區分大小寫的編碼方式。所以在默認情況和oracle數據庫是有區別的。
1. 插入 'Ab', 'ab'兩條記錄
root@test 09:11:51>insert into test values(3, 'Ab');
Query OK, 1 row affected (0.01 sec)


root@test 09:12:15>insert into test values(3,'ab');
Query OK, 1 row affected (0.01 sec)


root@test 09:12:39>select * from test;
+------+------+
| id   | name |
+------+------+
|    1 | aa11 |
|    2 | 1234 |
|    3 | Ab   |
|    3 | ab   |
+------+------+
4 rows in set (0.00 sec)
2. 按 'ab'檢索返回兩條記錄,如果是Oracle則只會返回一條數據。
root@test 09:12:43>select * from test where name='ab';
+------+------+
| id   | name |
+------+------+
|    3 | Ab   |
|    3 | ab   |
+------+------+
2 rows in set (0.00 sec)


3. 查看gbk的當前編碼格式COLLATION是gbk_chinese_ci, 即大小寫不敏感, 存儲的二進制編碼都是一樣的,
 所以在where子句中傳入'ab', 'aB',都會事先翻譯成相同的編碼,所以返回兩條記錄。
root@information_schema 10:13:57>select * from tables where table_schema='test' and table_name='TEST' \G
*************************** 1. row ***************************
  TABLE_CATALOG: def
   TABLE_SCHEMA: test
     TABLE_NAME: test
     TABLE_TYPE: BASE TABLE
         ENGINE: InnoDB
        VERSION: 10
     ROW_FORMAT: Compact
     TABLE_ROWS: 5
 AVG_ROW_LENGTH: 3276
    DATA_LENGTH: 16384
MAX_DATA_LENGTH: 0
   INDEX_LENGTH: 0
      DATA_FREE: 0
 AUTO_INCREMENT: NULL
    CREATE_TIME: 2016-08-18 11:14:42
    UPDATE_TIME: NULL
     CHECK_TIME: NULL
TABLE_COLLATION: gbk_chinese_ci
       CHECKSUM: NULL
 CREATE_OPTIONS:
  TABLE_COMMENT:


--證明都是按小寫來存儲的。
root@information_schema 10:23:02>select ascii(name), id from test.test;
+-------------+------+
| ascii(name) | id   |
+-------------+------+
|          97 |    1 |
|          49 |    2 |
|          65 |    3 |
|          97 |    3 |
|          49 |   12 |
+-------------+------+


4. 如何設置好數據庫,使得能夠對于字段值區分大小寫: 要把編碼模式設置為非缺省值的COLLATE=gbk_bin
root@test 01:34:58>create table a(name varchar(10) ) ENGINE=InnoDB DEFAULT CHARSET=gbk COLLATE=gbk_bin;
Query OK, 0 rows affected (0.01 sec)


root@test 01:35:06>insert into a values('a');
Query OK, 1 row affected (0.00 sec)


root@test 01:35:16>insert into a values('A');
Query OK, 1 row affected (0.00 sec)


root@test 01:35:20>select * from a where name='a';
+------+
| name |
+------+
| a    |
+------+
1 row in set (0.00 sec)


root@test 01:35:30>select * from a where name='A';
+------+
| name |
+------+
| A    |
+------+
1 row in set (0.00 sec)


root@test 01:35:35>create table b (name varchar(10));
Query OK, 0 rows affected (0.00 sec)

備注: 
utf8_bin將字符串中的每一個字符用二進制數據存儲,區分大小寫。

utf8_genera_ci不區分大小寫,ci為case insensitive的縮寫,即大小寫不敏感。

utf8_general_cs區分大小寫,cs為case sensitive的縮寫,即大小寫敏感。

“Mysql如何使得字段內容不區分大小寫”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

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

AI

庐江县| 米脂县| 师宗县| 都昌县| 崇明县| 诸暨市| 岳西县| 巩留县| 绿春县| 奉节县| 新安县| 瓦房店市| 清原| 恩施市| 柏乡县| 奎屯市| 兴安县| 广灵县| 广南县| 金坛市| 阳东县| 宁河县| 孝感市| 河源市| 资讯| 双鸭山市| 遂溪县| 甘肃省| 平湖市| 井冈山市| 衡山县| 紫云| 沧源| 中西区| 贵南县| 古浪县| 青铜峡市| 太白县| 阳朔县| 闻喜县| 班玛县|