Problem:
Du vill välja rader som innehåller en sträng som börjar med en av en viss grupp tecken.
Exempel:
Vår databas har en tabell som heter gamer
med data i id
och user
kolumner.
id | användare |
---|---|
1 | superman |
2 | magnus |
3 | lucy |
4 | stan |
5 | ali |
Låt oss hitta all data för spelare vars användarnamn börjar med 'a', 'b', 'r' eller 's'.
Lösning:
SELECT id, user FROM gamer WHERE user LIKE '[abrs]%';
Här är resultatet:
id | användare |
---|---|
1 | superman |
4 | stan |
5 | ali |
Diskussion:
Om du vill filtrera rader som innehåller en sträng som matchar ett givet mönster, använd WHERE-satsen med LIKE-operatorn. WHERE-satsen används för att filtrera poster som uppfyller angivna villkor. Efter WHERE lägger du till ett kolumnnamn eller ett uttryck, följt av operatorn (t.ex. LIKE) och jämförelsevärdet/värdena. Efter LIKE anger du mönstret som ska matcha (i vårt exempel, WHERE user LIKE '[abrs]%'
). Mönstret kan innehålla tecken och jokertecken.
Ett av T-SQL:s jokertecken är "%", som representerar noll eller fler okända tecken. Understrecket jokertecken ( _ ) indikerar ett tecken. Hakparenteserna ( [] ) omsluter mönstret för att matcha; detta mönster kan innehålla en eller flera bokstäver eller siffror. Målsträngen kan matcha ett eller flera av tecknen inom parentes.
I vårt exempel är mönstret '[abrs]%'
anger att användarnamnet måste börja med antingen a, b, r eller s. Efter starttecknet kan det finnas noll eller fler tecken eftersom vi har använt jokertecken %.
Användarna med id=2 och id=3 visas inte; deras namn börjar med "l" och "m" och matchar därför inte mönstret vi har valt.