Pencocokan tidak berfungsi dengan karakter pengganti awal, jadi cocokkan dengan *abc*
tidak akan bekerja. Anda harus menggunakan LIKE
untuk mencapai ini:
SELECT * FROM user WHERE user_login LIKE '%abc';
Namun ini akan sangat lambat.
Jika Anda benar-benar perlu mencocokkan akhir string, dan Anda harus sering melakukannya saat performa mematikan Anda, solusinya adalah membuat kolom terpisah tempat Anda membalik string, jadi Anda mendapatkan:
user_login user_login_rev
xyzabc cbazyx
Kemudian, alih-alih mencari '%abc'
, Anda dapat mencari 'cba%'
yang jauh lebih cepat jika kolom diindeks. Dan Anda dapat kembali menggunakan MATCH jika Anda ingin mencari 'cba*'
. Anda hanya perlu membalik string pencarian juga.