Matchning fungerar inte med startjokertecken, så matchning med *abc*
kommer inte att fungera. Du måste använda LIKE
för att uppnå detta:
SELECT * FROM user WHERE user_login LIKE '%abc';
Detta kommer dock att gå väldigt långsamt.
Om du verkligen behöver matcha för slutet av strängen, och du måste göra detta ofta medan framförandet dödar dig, skulle en lösning vara att skapa en separat kolumn där du vänder om strängarna, så du fick:
user_login user_login_rev
xyzabc cbazyx
Sedan, istället för att leta efter '%abc'
, kan du leta efter 'cba%'
vilket är mycket snabbare om kolumnen är indexerad. Och du kan återigen använda MATCH om du vill söka efter 'cba*'
. Du behöver bara vända på söksträngen också.