La coincidencia no funciona con comodines iniciales, por lo que la coincidencia con *abc*
no funcionará Tendrás que usar LIKE
para lograr esto:
SELECT * FROM user WHERE user_login LIKE '%abc';
Sin embargo, esto será muy lento.
Si realmente necesita hacer coincidir el final de la cadena, y tiene que hacerlo a menudo mientras el rendimiento lo está matando, una solución sería crear una columna separada en la que invierta las cadenas, por lo que obtuvo:
user_login user_login_rev
xyzabc cbazyx
Luego, en lugar de buscar '%abc'
, puede buscar 'cba%'
que es mucho más rápido si la columna está indexada. Y puede volver a usar MATCH si desea buscar 'cba*'
. Solo tendrá que invertir la cadena de búsqueda también.