La corrispondenza non funziona con i caratteri jolly iniziali, quindi la corrispondenza con *abc*
non funzionerà. Dovrai usare LIKE
per raggiungere questo obiettivo:
SELECT * FROM user WHERE user_login LIKE '%abc';
Tuttavia, sarà molto lento.
Se hai davvero bisogno di abbinare la fine della stringa, e devi farlo spesso mentre la performance ti sta uccidendo, una soluzione sarebbe quella di creare una colonna separata in cui invertire le stringhe, quindi hai:
user_login user_login_rev
xyzabc cbazyx
Quindi, invece di cercare '%abc'
, puoi cercare 'cba%'
che è molto più veloce se la colonna è indicizzata. E puoi di nuovo usare MATCH se ti piace cercare 'cba*'
. Dovrai solo invertire anche la stringa di ricerca.