Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Teilweise MySQL-Indizierung, umgekehrte Indizierung

Sie können einen Index für ein Feld erstellen, das durch die Präfixlänge begrenzt ist, was bedeutet, dass nur die ersten n Zeichen berücksichtigt werden, Sie können dies jedoch nicht mit einer beliebigen Start- und Endposition tun. Lesen Sie mehr darüber auf CREATE INDEX von mysql Dokumentationsseite.

In diesem Fall würde ich einfach eine weitere Spalte erstellen und mysql's verwenden RÜCKWÄRTS Funktion, um es auszufüllen und einen Index darauf zu erstellen, auf diese Weise erhalten Sie ein Feld, in dem Sie nach der Umkehrung des ursprünglichen Wortes suchen können.

Andere Datenbanken wie Postgresql ermöglichen es Ihnen, einen Ausdruck zu indizieren , was es Ihnen effektiv ermöglichen würde, reverse(col_name) zu indizieren ohne die zusätzliche Spalte zu erstellen. Es ist also möglich, nur derzeit nicht mit mysql. (Seit Version 9 hat potgresql reverse() nativ, glaube ich)