Dopasowanie nie działa z początkowymi symbolami wieloznacznymi, więc dopasowanie za pomocą *abc*
nie zadziała. Będziesz musiał użyć LIKE
aby to osiągnąć:
SELECT * FROM user WHERE user_login LIKE '%abc';
Będzie to jednak bardzo powolne.
Jeśli naprawdę musisz dopasować koniec ciągu, a musisz to robić często, gdy występ cię zabija, rozwiązaniem byłoby utworzenie oddzielnej kolumny, w której odwracasz ciągi, więc otrzymujesz:
user_login user_login_rev
xyzabc cbazyx
Następnie zamiast szukać '%abc'
, możesz poszukać 'cba%'
co jest znacznie szybsze, jeśli kolumna jest indeksowana. Możesz ponownie użyć funkcji PODAJ.POZYCJĘ, jeśli chcesz wyszukać 'cba*'
. Musisz tylko odwrócić ciąg wyszukiwania.