Dwie opcje:
-
Użyj
LIKE
słowo kluczowe wraz ze znakami procentu w ciąguselect * from table where field like '%a%' or field like '%b%'.
(uwaga:jeśli wyszukiwany ciąg zawiera znaki procentu, musisz je zmienić)
-
Jeśli szukasz bardziej złożonej kombinacji ciągów niż podałeś w przykładzie, możesz użyć wyrażeń regularnych (regex):
Zobacz instrukcję MySQL, aby dowiedzieć się, jak z nich korzystać:http:// /dev.mysql.com/doc/refman/5.1/en/regexp.html
Spośród nich, używając LIKE
jest najczęstszym rozwiązaniem — jest to standardowy SQL i powszechnie używany. Regex jest rzadziej używany, ale znacznie potężniejszy.
Pamiętaj, że niezależnie od wybranej opcji musisz mieć świadomość możliwych skutków dla wydajności. Wyszukiwanie takich podciągów oznacza, że zapytanie będzie musiało przeskanować całą tabelę. Jeśli masz dużą tabelę, może to spowodować bardzo powolne zapytanie i żadne indeksowanie nie pomoże.
Jeśli jest to dla ciebie problem i będziesz musiał szukać tych samych rzeczy w kółko, możesz zrobić coś takiego jak dodanie pola flagi do tabeli, która określa, że pole tekstowe zawiera odpowiedni pod- smyczki. Jeśli zachowasz aktualność tego pola flagi podczas wstawiania lub aktualizowania rekordu, możesz po prostu zapytać o flagę, gdy chcesz wyszukiwać. Można to zindeksować, co znacznie przyspieszy zapytanie. To, czy warto to zrobić, zależy od Ciebie, będzie to zależeć od tego, jak słaba wydajność jest przy użyciu LIKE
.