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

歡迎訪問 生活随笔!

生活随笔

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

数据库

MySQL的大小写问题

發布時間:2025/4/14 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL的大小写问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MySQL的大小寫問題 不是一個很大的問題,但是如果不了解的話,卻會使用戶產生迷惑 ;如下面

Sql代碼
insert into t values('A');

insert into t values('a');

當第二條執行的時候,如果是主鍵或者有唯一性約束的話,會發生

Sql代碼?
Duplicate entry for XXX

更加迷惑的是下面的2條語句

Java代碼?
insert into t values('~');

insert into t values('y');

也會發生插入錯誤。

在查詢的時候也會出現這樣的問題

Java代碼?
/* 查詢的結果一眼 */
select * from t where a like 'a%'
select * from t where a like 'A%'

/* 下面的查詢結果也是一樣 */
select * from t where a = 'y';
select * from t where a = ''~;

1.問題產生的原因

MySQL在Linux下數據庫名、表名、列名、別名大小寫規則是這樣的:

1、數據庫名與表名是嚴格區分大小寫的;
2、表的別名是嚴格區分大小寫的;
3、列名與列的別名在所有的情況下均是忽略大小寫的;
4、變量名也是嚴格區分大小寫的;

MySQL在Windows下都不區分大小寫。

MySQL在查詢字符串時是大小寫不敏感的,在編繹MySQL時一般以ISO-8859字符集作為默認的字符集,這個字符集對大小寫不敏感,因此在比較過程中中文編碼字符大小寫轉換造成了這種現象。


2.解決辦法

A.表名區分大小寫

在my.conf加入:
ower_case_table_names = 0
其中 0:區分大小寫,1:不區分大小寫

B.插入查詢時區分大小寫

字段值需要設置BINARY屬性,即可區分大小寫。

設置的方法有多種:
創建時設置:
CREATE TABLE T(
A VARCHAR(10) BINARY
);

使用alter修改:
ALTER TABLE `tablename` MODIFY COLUMN `cloname` VARCHAR(45) BINARY;

mysql table editor中直接勾選BINARY項。

轉載于:https://www.cnblogs.com/yongjiapei/p/5524720.html

總結

以上是生活随笔為你收集整理的MySQL的大小写问题的全部內容,希望文章能夠幫你解決所遇到的問題。

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