2010-10-22 103 views
0

我有一個名爲'word'的varchar(100)字段的innodb mysql表。如何從mysql索引獲取索引鍵?

我在該字段上創建了一個btree索引。

如果我做了一個查詢,如select * from table where word ='non-linear',我得到該單詞的所有變體。所以結果將包括(非線性,非線性,非線性等)。

在我看來,該指數並不關心大寫。

是不是意味着該詞典有對1個記錄的這個詞彙?

如果是這樣,有沒有辦法獲得索引中所有鍵的列表,以便我基本上有一個唯一條件列表?

回答

0

字符串比較對於非二進制數據類型(如varchar,char,text)不區分大小寫。對於二進制字符串(BINARY,VARBINARY,BLOB),比較使用操作數中字節的數值;這意味着對於字母字符,比較將區分大小寫。

更多信息請登錄Mysql Docs

+0

謝謝,這有助於回答我關於區分大小寫的第一個問題。我還不清楚是否有辦法從索引中獲得實際值。 – britt 2010-10-25 18:49:01

+0

索引中的鍵是根據您構建索引的數據創建的。它不像每一種組合,關鍵是存在的數據。在你的情況下,如果你在數據ABC,abc和AbC的varchar列上創建索引。那麼因爲如果你不使用二進制,所有這些都是相等的,那麼這個鍵就只有ABC,這將有ABC,abc和AbC。 – 2010-10-26 06:23:45