sql >> Database >  >> RDS >> Mysql

mysql gedeeltelijke indexering, omgekeerde indexering

U kunt een index maken op een veld dat is beperkt door de lengte van het voorvoegsel, wat betekent dat alleen de eerste n tekens in aanmerking worden genomen, maar u kunt dit niet doen met een willekeurige begin- en eindpositie. Lees er meer over op mysql's CREATE INDEX documentatiepagina.

In dit geval zou ik gewoon een andere kolom maken, gebruik mysql's ACHTERUIT functie om het in te vullen en er een index op te maken, op die manier krijg je een veld om op te zoeken naar het omgekeerde van het originele woord.

Met andere databases zoals Postgresql kunt u een uitdrukking indexeren , waarmee u effectief reverse(col_name) . kunt indexeren zonder de extra kolom te maken. Het is dus mogelijk, alleen niet met mysql op dit moment. (sinds versie 9 heeft potgresql reverse() native geloof ik)




  1. Hoe een Auto Increment Primary Key in Oracle te definiëren

  2. Hoe verander je 2 zoekopdrachten met gemeenschappelijke kolommen (A, B) en (A, C) in slechts één (A, B, C)?

  3. Laravel Raw Query gebruiken met tijdelijke aanduiding

  4. Waarom worden SQL Server Scalaire functies langzamer?