2010-10-22 105 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