Problém:
Chcete vybrat řádky, které obsahují řetězec začínající jedním z dané skupiny znaků.
Příklad:
Naše databáze obsahuje tabulku s názvem gamer
s údaji v id
a user
sloupce.
id | uživatel |
---|---|
1 | superman |
2 | magnus |
3 | lucy |
4 | stan |
5 | ali |
Pojďme najít všechna data pro hráče, jejichž uživatelská jména začínají na „a“, „b“, „r“ nebo „s“.
Řešení:
SELECT id, user FROM gamer WHERE user LIKE '[abrs]%';
Zde je výsledek:
id | uživatel |
---|---|
1 | superman |
4 | stan |
5 | ali |
Diskuse:
Pokud chcete filtrovat řádky obsahující řetězec, který odpovídá danému vzoru, použijte klauzuli WHERE s operátorem LIKE. Klauzule WHERE se používá k filtrování záznamů, které splňují uvedené podmínky. Za WHERE přidáte název sloupce nebo výraz, následovaný operátorem (např. LIKE) a porovnávanými hodnotami. Po LIKE zadáte vzor, který se má shodovat (v našem příkladu WHERE user LIKE '[abrs]%'
). Vzor může obsahovat znaky a zástupné znaky.
Jeden ze zástupných znaků T-SQL je „%“, což představuje nula nebo více neznámých znaků. Zástupný znak podtržítka ( _ ) označuje jeden znak. Závorky ( [] ) ohraničují vzor, aby odpovídal; tento vzor může obsahovat jedno nebo více písmen nebo číslic. Cílový řetězec se může shodovat s jedním nebo více znaky v závorkách.
V našem příkladu vzor '[abrs]%'
označuje, že uživatelské jméno musí začínat buď a, b, r nebo s. Za počátečním znakem může být nula nebo více znaků, protože jsme použili zástupný znak %.
Uživatelé s id=2 a id=3 nejsou zobrazeny; jejich názvy začínají na „l“ a „m“, a proto neodpovídají vzoru, který jsme vybrali.