Match funktioniert nicht mit beginnenden Wildcards, also Matching mit *abc*
wird nicht funktionieren. Sie müssen LIKE
verwenden um dies zu erreichen:
SELECT * FROM user WHERE user_login LIKE '%abc';
Dies wird jedoch sehr langsam sein.
Wenn Sie wirklich das Ende der Zeichenfolge abgleichen müssen, und Sie müssen dies oft tun, während die Leistung Sie umbringt, wäre eine Lösung, eine separate Spalte zu erstellen, in der Sie die Zeichenfolgen umkehren, also erhalten Sie:
user_login user_login_rev
xyzabc cbazyx
Dann statt nach '%abc'
zu suchen , können Sie nach 'cba%'
suchen was viel schneller ist, wenn die Spalte indiziert ist. Und Sie können wieder MATCH verwenden, wenn Sie nach 'cba*'
suchen möchten . Sie müssen nur auch die Suchzeichenfolge umkehren.