Mysql
 sql >> Database >  >> RDS >> Mysql

Come utilizzare i caratteri jolly del prefisso come '*abc' con match-contro

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.