sql >> Database >  >> RDS >> Mysql

Hoe prefix-jokertekens zoals '*abc' te gebruiken met match-against

Match werkt niet met startende jokertekens, dus matchen met *abc* zal niet werken. Je moet LIKE . gebruiken om dit te bereiken:

SELECT * FROM user WHERE user_login LIKE '%abc';

Dit gaat echter erg langzaam.

Als je echt moet matchen voor het einde van de string, en je moet dit vaak doen terwijl de uitvoering je doodt, zou een oplossing zijn om een ​​aparte kolom te maken waarin je de strings omdraait, zodat je krijgt:

user_login user_login_rev
xyzabc     cbazyx

Dan, in plaats van te zoeken naar '%abc' , kunt u zoeken naar 'cba%' wat veel sneller is als de kolom is geïndexeerd. En je kunt MATCH opnieuw gebruiken als je wilt zoeken naar 'cba*' . U hoeft alleen de zoekreeks ook om te draaien.



  1. Windows Azure VM-prestaties vergelijken, deel 2

  2. Query's met MySQL-parameter

  3. MySql-queryanalysator - gratis oplossingen

  4. Leer hoe u Excel-gegevens importeert in een MySQL-database