Problem:
Du vil gerne vælge rækker, der indeholder en streng, der starter med en af en given gruppe af tegn.
Eksempel:
Vores database har en tabel ved navn gamer
med data i id
og user
kolonner.
id | bruger |
---|---|
1 | supermand |
2 | magnus |
3 | lucy |
4 | stand |
5 | ali |
Lad os finde alle data for spillere, hvis brugernavne starter med 'a', 'b', 'r' eller 's'.
Løsning:
SELECT id, user FROM gamer WHERE user LIKE '[abrs]%';
Her er resultatet:
id | bruger |
---|---|
1 | supermand |
4 | stand |
5 | ali |
Diskussion:
Hvis du vil filtrere rækker, der indeholder en streng, der matcher et givet mønster, skal du bruge WHERE-sætningen med LIKE-operatoren. WHERE-sætningen bruges til at filtrere poster, der opfylder angivne betingelser. Efter WHERE tilføjer du et kolonnenavn eller et udtryk efterfulgt af operatoren (f.eks. LIKE) og sammenligningsværdien/-værdierne. Efter LIKE indtaster du det mønster, der skal matche (i vores eksempel, WHERE user LIKE '[abrs]%'
). Mønsteret kan indeholde tegn og jokertegn.
Et af T-SQL's jokertegn er '%', som repræsenterer nul eller flere ukendte tegn. Understregningen jokertegnet ( _ ) angiver ét tegn. Klammerne ( [] ) omslutter mønsteret for at matche; dette mønster kan indeholde et eller flere bogstaver eller tal. Målstrengen kan matche et eller flere af tegnene i parentes.
I vores eksempel er mønsteret '[abrs]%'
angiver, at brugernavnet skal starte med enten a, b, r eller s. Efter starttegnet kan der være nul eller flere tegn, fordi vi har brugt jokertegnet %.
Brugerne med id=2 og id=3 vises ikke; deres navne starter med 'l' og 'm' og matcher derfor ikke det mønster, vi har valgt.