Mysql大小寫(xiě)中易出現(xiàn)的問(wèn)題的解決
以下的文章主要介紹的是Mysql大小寫(xiě)的某些問(wèn)題的解決,本文是通過(guò)Mysql大小寫(xiě)的敏感性來(lái)對(duì)其進(jìn)行詳細(xì)研究的,以下就是文章對(duì)其具體內(nèi)容的詳細(xì)介紹,望你瀏覽之后會(huì)對(duì)Mysql大小寫(xiě)的相關(guān)問(wèn)題有更好的了解。
1、數(shù)據(jù)庫(kù)和表名
在Mysql中,數(shù)據(jù)庫(kù)和表對(duì)應(yīng)于在那些目錄下的目錄和文件,因而,內(nèi)在的操作系統(tǒng)的敏感性決定數(shù)據(jù)庫(kù)和表命名的大小寫(xiě)敏感性。這意味著數(shù)據(jù)庫(kù)和表名在Unix上是區(qū)分大小寫(xiě)的,而在Win32上忽略大小寫(xiě)。
注意:在Win32上,盡管數(shù)據(jù)庫(kù)和表名是忽略Mysql大小寫(xiě)的,你不應(yīng)該在同一個(gè)查詢(xún)中使用不同的大小寫(xiě)來(lái)引用一個(gè)給定的數(shù)據(jù)庫(kù)和表。下列查詢(xún)將不工作,因?yàn)樗鳛閙y_table和作為MY_TABLE引用一個(gè)表:
- Mysql> SELECT * FROM my_table WHERE MY_TABLE.col=1;
2、列名
列名在所有情況下都是忽略大小寫(xiě)的。
3、表的別名
表的別名是區(qū)分大小寫(xiě)的。下列查詢(xún)將不工作,: 因?yàn)樗胊和A引用別名:
- Mysql> SELECT col_name FROM tbl_name AS a
- WHERE a.col_name = 1 OR A.col_name = 2;
4、列的別名
列的別名是忽略大小寫(xiě)的。
5、字符串比較和模式匹配
缺省地,Mysql搜索是大小寫(xiě)不敏感的(盡管有一些字符集從來(lái)不是忽略Mysql大小寫(xiě)的,例如捷克語(yǔ))。這意味著,如果你用col_name LIKE 'a%'搜尋,你將得到所有以A或a開(kāi)始的列值。如果你想要使這個(gè)搜索大小寫(xiě)敏感,使用象INDEX(col_name, "A")=0檢查一個(gè)前綴。或如果列值必須確切是"A",使用STRCMP(col_name, "A") = 0。
簡(jiǎn)單的比較操作(>=、>、= 、< 、<=、排序和聚合)是基于每個(gè)字符的“排序值”。有同樣排序值的字符(象E,e)被視為相同的字符!
LIKE比較在每個(gè)字符的大寫(xiě)值上進(jìn)行(“E”=”e”)。
如果你想要一個(gè)列總是被當(dāng)作Mysql大小寫(xiě)敏感的方式,聲明它為BINARY。
例如:
- Mysql> SELECT "E"="e","E"=BINARY "e";
- +---------+----------------+| "E"="e" | "E"=BINARY "e"
|+---------+----------------+| 1 | 0 |+---------+----------------+
上述的相關(guān)內(nèi)容就是對(duì)Mysql大小寫(xiě)問(wèn)題的描述,希望會(huì)給你帶來(lái)一些幫助在此方面。
【編輯推薦】