程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL數據庫大小寫敏感問題的破解

MySQL數據庫大小寫敏感問題的破解

編輯:MySQL綜合教程

我們大家都知道在MySQL數據庫中,數據庫與其表對應的是在那些目錄下目錄與相關的文件,因而內在的相關的操作系統的敏感性決定數據庫與表命名的大小寫敏感性。這就意味著數據庫和表名在Unix上是區分大小寫的,而在Win32上忽略大小寫。

數據庫和表名

在MySQL中,數據庫和表對應於在那些目錄下的目錄和文件,因而,內在的操作系統的敏感性決定數據庫和表命名的大小寫敏感性。這意味著數據庫和表名在Unix上是區分大小寫的,而在Win32上忽略大小寫。

注意:在Win32上,盡管MySQL數據庫和表名是忽略MySQL大小寫的,你不應該在同一個查詢中使用不同的大小寫來引用一個給定的數據庫和表。下列查詢將不工作,因為它作為my_table和作為MY_TABLE引用一個表:

1.

  1. MySQL> SELECT * FROM my_table WHERE MY_TABLE.col=1; 

2、列名

列名在所有情況下都是忽略大小寫的。

3、表的別名

表的別名是區分大小寫的。下列查詢將不工作,: 因為它用a和A引用別名:

1.

  1. MySQL> SELECT col_name FROM tbl_name AS a 

2.

  1. WHERE a.col_name = 1 OR A.col_name = 2; 

4、列的別名

列的別名是忽略大小寫的。

5、字符串比較和模式匹配

缺省地,MySQL數據庫搜索是大小寫不敏感的(盡管有一些字符集從來不是忽略MySQL大小寫的,例如捷克語)。這意味著,如果你用col_name LIKE 'a%'搜尋,你將得到所有以A或a開始的列值。如果你想要使這個搜索大小寫敏感,使用象INDEX(col_name, "A")=0檢查一個前綴。或如果列值必須確切是"A",使用STRCMP(col_name, "A") = 0。

簡單的比較操作(>=、>、= 、< 、<=、排序和聚合)是基於每個字符的“排序值”。有同樣排序值的字符(象E,e)被視為相同的字符!

LIKE比較在每個字符的大寫值上進行(“E”=”e”)。

如果你想要一個列總是被當作MySQL大小寫敏感的方式,聲明它為BINARY。

例如

  1. 1.Mysql> SELECT "E"="e","E"=BINARY "e";   
  2. 2.+---------+----------------+| "E"="e" | "E"=BINARY "e"   
  3. |+---------+----------------+| 1 | 0 |+---------+----------------+ 

上述的相關內容就是對MySQL數據庫大小寫問題的描述,希望會給你帶來一些幫助在此方面。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved