Puoi creare un indice su un campo limitato dalla lunghezza del prefisso, il che significa che verranno considerati solo i primi n caratteri, tuttavia non puoi farlo con una posizione di inizio e fine arbitraria. Leggi di più su CREATE INDEX di mysql pagina della documentazione.
In questo caso mi limiterei a creare un'altra colonna, utilizzare di mysql INVERSO funzione per compilarlo e creare un indice su di esso, in questo modo ottieni un campo in cui cercare il rovescio della parola originale.
Altri database come Postgresql consentono di indicizzare un'espressione
, che ti consentirebbe effettivamente di indicizzare reverse(col_name)
senza creare la colonna aggiuntiva. Quindi è possibile, ma non con MySQL in questo momento. (dal momento che la versione 9 potgresql ha reverse() native credo)