Mysql
 sql >> Database >  >> RDS >> Mysql

indicizzazione parziale mysql, indicizzazione inversa

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)