2012-06-08 20 views
5

Ben bir kelime listesi içeren bir tablo var.mysql kısmi indeksleme, ters indeksleme

kelime VARCHAR (16)

Ben bir ters dizin oluşturmak gerekir. yani. "Elma" sözcüğü "elppa", "muz" kelimesi "ananab" ve benzeri şekilde indekslenir.

Ayrıca, kelimenin bir kısmını indekslemek mümkün mü?

pple (elma) anana (muz)

bunları mümkün: Mesela, ilk/son 1 veya 2 karakter atlamak?

+0

Ters metin ile yeni bir sütun ekleyin ve dizini orada oluşturun. – Scoutman

cevap

5

Önek uzunluğuna göre sınırlanmış bir alanda bir dizin oluşturabilir, bu da yalnızca ilk n karakterlerin dikkate alınacağı anlamına gelir, ancak bunu keyfi bir başlangıç ​​ve bitiş konumuyla yapamazsınız. Mysql'in CREATE INDEX dokümantasyon sayfasında bunun hakkında daha fazla bilgi edinin. Sadece başka bir sütun, bunu doldurmak ve üzerinde bir dizin oluşturmak için kullanımı mysql en REVERSE işlevi, bir tarla orijinal kelimenin ters için arama almak bu şekilde yapmak istiyorum Bu durumda

.

Postgresql gibi diğer veritabanları, fazladan sütun oluşturmadan reverse(col_name) dizinini etkili bir şekilde göndermenize olanak veren index an expression'a izin verir. Yani bu mümkün, sadece şu anda mysql ile değil. (9 sürümünden beri potgresql tersine() inanıyorum)

İlgili konular