Problem:
Chcesz wybrać wiersze zawierające ciąg rozpoczynający się od jednego z podanej grupy znaków.
Przykład:
Nasza baza danych zawiera tabelę o nazwie gamer
z danymi w id
i user
kolumny.
id | użytkownik |
---|---|
1 | superman |
2 | Magnus |
3 | lucy |
4 | stan |
5 | ali |
Znajdźmy wszystkie dane dla graczy, których nazwy użytkowników zaczynają się od „a”, „b”, „r” lub „s”.
Rozwiązanie:
SELECT id, user FROM gamer WHERE user LIKE '[abrs]%';
Oto wynik:
id | użytkownik |
---|---|
1 | superman |
4 | stan |
5 | ali |
Dyskusja:
Jeśli chcesz filtrować wiersze zawierające ciąg pasujący do podanego wzorca, użyj klauzuli WHERE z operatorem LIKE. Klauzula WHERE służy do filtrowania rekordów spełniających określone warunki. Po WHERE dodajesz nazwę kolumny lub wyrażenie, po którym następuje operator (np. LIKE) i wartości porównania. Po LIKE wpisujesz wzorzec do dopasowania (w naszym przykładzie WHERE user LIKE '[abrs]%'
). Wzór może zawierać znaki i symbole wieloznaczne.
Jednym z symboli wieloznacznych T-SQL jest „%”, który reprezentuje zero lub więcej nieznanych znaków. Symbol wieloznaczny podkreślenia ( _ ) wskazuje jeden znak. Nawiasy kwadratowe ( [] ) otaczają wzorzec do dopasowania; ten wzór może zawierać jedną lub więcej liter lub cyfr. Ciąg docelowy może pasować do jednego lub więcej znaków w nawiasach.
W naszym przykładzie wzorzec '[abrs]%'
oznacza, że nazwa użytkownika musi zaczynać się od a, b, r lub s. Po znaku początkowym może być zero lub więcej znaków, ponieważ użyliśmy symbolu wieloznacznego %.
Użytkownicy z id=2 i id=3 nie są wyświetlane; ich nazwy zaczynają się od „l” i „m”, a zatem nie pasują do wybranego przez nas wzorca.