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

歡迎訪問 生活随笔!

生活随笔

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

数据库

mysql大小写问题

發(fā)布時間:2025/5/22 数据库 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql大小写问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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

?

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

    當?shù)诙l執(zhí)行的時候,如果是主鍵或者有唯一性約束的話,會發(fā)生

    ?

    Sql代碼??
  • Duplicate?entry?for?XXX??
  • ?

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

    ?

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

    也會發(fā)生插入錯誤。

    ?

    在查詢的時候也會出現(xiàn)這樣的問題

    ?

    Java代碼??
  • /*?查詢的結(jié)果一眼?*/??
  • select?*?from?t?where?a?like?'a%'??
  • select?*?from?t?where?a?like?'A%'??
  • ??
  • /*?下面的查詢結(jié)果也是一樣?*/??
  • select?*?from?t?where?a?=?'y';??
  • select?*?from?t?where?a?=?''~;??
  • ?

    1.問題產(chǎn)生的原因

    ?

    MySQL在Linux下數(shù)據(jù)庫名、表名、列名、別名大小寫規(guī)則是這樣的:


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

    ?

    MySQL在Windows下都不區(qū)分大小寫。 MySQL在查詢字符串時是大小寫不敏感的,在編繹MySQL時一般以ISO-8859字符集作為默認的字符集,這個字符集對大小寫不敏感,因此在比較過程中中文編碼字符大小寫轉(zhuǎn)換造成了這種現(xiàn)象。

    ?

    ?

    2.解決辦法

    ?

    A.表名區(qū)分大小寫

    ?

    在my.conf加入:

    ower_case_table_names = 0
    其中 0:區(qū)分大小寫,1:不區(qū)分大小寫

    ?

    B.插入查詢時區(qū)分大小寫

    ?

    字段值需要設(shè)置BINARY屬性,即可區(qū)分大小寫。

    ?

    設(shè)置的方法有多種:

    創(chuàng)建時設(shè)置:?
    CREATE TABLE T(?
    A VARCHAR(10) BINARY?
    );

    ?

    使用alter修改:?
    ALTER TABLE `tablename` MODIFY COLUMN `cloname` VARCHAR(45) BINARY; mysql table editor中直接勾選BINARY項。

    轉(zhuǎn)載于:https://blog.51cto.com/pllatt/1020289

    總結(jié)

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

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。