2012-03-26 198 views
2

四處搜索試圖找到一種方法添加索引後綴的列我找不到解決方案。MySQL後綴索引

部分索引的唯一的事情,我發現是對指數的前綴是:

CREATE INDEX part_of_name ON customer (name(10)); 

12.1.13. CREATE INDEX Syntax

我也嘗試過其他的東西,如:

CREATE INDEX part_of_name ON customer (name(-10)); 
CREATE INDEX part_of_name ON customer (RIGHT(name,10)); 
CREATE INDEX part_of_name ON customer (SUBSTRING(name,-10)); 

ALL同樣的錯誤:

ERROR 1064 (42000): You have an error in your SQL syntax; 

我想你的幫助! 提前謝謝!

回答

1

MySQL不支持任意表達式的索引。前綴索引只是一個怪癖,因爲它在B樹索引的典型實現中是「免費」的。

您需要在表中添加另一列,使用觸發器填充它,然後將索引放在該表上。

+0

謝謝你porneL! 不幸的是,正如你所說,我將不得不創建另一列... – 2012-03-26 14:35:39

+0

@ pan.soultanos:歡迎來到StackOverflow。如果您發現我的答案有幫助,請將其標記爲已接受。 – Kornel 2012-03-26 20:51:49