Probleem:
U wilt rijen selecteren die een tekenreeks bevatten die begint met een van een bepaalde groep tekens.
Voorbeeld:
Onze database heeft een tabel met de naam gamer
met gegevens in de id
en user
kolommen.
id | gebruiker |
---|---|
1 | superman |
2 | magnus |
3 | lucy |
4 | stan |
5 | ali |
Laten we alle gegevens zoeken voor gamers wiens gebruikersnamen beginnen met 'a', 'b', 'r' of 's'.
Oplossing:
SELECT id, user FROM gamer WHERE user LIKE '[abrs]%';
Hier is het resultaat:
id | gebruiker |
---|---|
1 | superman |
4 | stan |
5 | ali |
Discussie:
Als u rijen wilt filteren die een tekenreeks bevatten die overeenkomt met een bepaald patroon, gebruikt u de WHERE-component met de LIKE-operator. De WHERE-component wordt gebruikt om records te filteren die aan de gestelde voorwaarden voldoen. Na WHERE voeg je een kolomnaam of een uitdrukking toe, gevolgd door de operator (bijvoorbeeld LIKE) en de vergelijkingswaarde(n). Na LIKE voer je het patroon in dat overeenkomt (in ons voorbeeld WHERE user LIKE '[abrs]%'
). Het patroon kan tekens en jokertekens bevatten.
Een van de wildcards van T-SQL is '%', wat staat voor nul of meer onbekende tekens. Het underscore-jokerteken ( _ ) geeft één teken aan. De haakjes ( [] ) omsluiten het patroon dat overeenkomt; dit patroon kan een of meer letters of cijfers bevatten. De doelreeks kan overeenkomen met een of meer van de tekens tussen haakjes.
In ons voorbeeld is het patroon '[abrs]%'
geeft aan dat de gebruikersnaam moet beginnen met a, b, r of s. Na het beginteken kunnen er nul of meer tekens zijn omdat we het % jokerteken hebben gebruikt.
De gebruikers met id=2 en id=3 worden niet weergegeven; hun namen beginnen met 'l' en 'm' en komen dus niet overeen met het patroon dat we hebben geselecteerd.