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.