Możesz utworzyć indeks na polu, które jest ograniczone przez długość prefiksu, co oznacza, że tylko pierwsze n znaków będzie brane pod uwagę, ale nie możesz tego zrobić z dowolną pozycją początkową i końcową. Przeczytaj więcej na ten temat na UTWÓRZ INDEKS strona dokumentacji.
W tym przypadku zrobiłbym po prostu kolejną kolumnę, użyj mysql ODWRÓT funkcji, aby wypełnić go i utworzyć indeks, w ten sposób otrzymasz pole do wyszukiwania odwrotności oryginalnego słowa.
Inne bazy danych, takie jak Postgresql, umożliwiają indeksowanie wyrażenia
, co skutecznie pozwoliłoby na indeksowanie reverse(col_name)
bez tworzenia dodatkowej kolumny. Więc jest to możliwe, ale nie teraz z mysql. (od wersji 9 potgresql ma natywny reverse())