LIKE

De LIKE operator wordt gebruikt in de WHERE clausule. Met de LIKE operator is het mogelijk om op bepaalde delen van de kolominhoud te zoeken.

SELECT kolomnaam FROM Tabelnaam WHERE kolomnaam LIKE zoekterm

De LIKE maakt gebruik van wildcards. Er zijn twee mogelijk wildcards die gebruikt kunnen worden: % en _.

De % wildcard staat voor 0, 1 of meerdere karakters. Wordt bijvoorbeeld %n opgegeven als zoekterm voor de LIKE, dan wordt gezocht naar alle waardes die eindigen met de 'n'. De zoekterm n% zal zoeken naar alle waardes die beginnen met de 'n'. Bij %n% wordt gezocht op alle waardes die een 'n' bevatten.

SELECT kolomnaam FROM Tabelnaam WHERE kolomnaam LIKE 'n%'

De _ wildcard staat voor 1 karakter. Voor elk karakter dat gematched moet worden moet een _ gebruikt worden. Goede voorbeelden van deze wildcard zijn postcodes of geboortedatums. Stel dat iedereen die op een bepaalde dag geselecteerd moet worden dan kan 25-08-____ gebruikt worden. In het geval van de postcode kan elke postcode uit een bepaald gebied op deze manier opgevraagd worden: 1234__.

SELECT kolomnaam FROM Tabelnaam WHERE kolomnaam LIKE '1234__'

LIKE in de praktijk

De volgende dataset is de inhoud van de tabel Persoon.

id, voornaam, achternaam, woonplaats
1, 'Henk', 'Janssen', 'Amsterdam'
2, 'Petra', 'de klomp', 'Nijmegen'
3, 'Sjoerd', 'Vermeulen', 'Maastricht'
4, 'Mieke', 'Sterk', 'Amsterdam'

Als we alle personen willen selecteren waarvan de achternaam eindigt met de 'n', dan kunnen we de volgende query gebruiken.

SELECT * FROM Persoon WHERE woonplaats LIKE '%n'
Resultaat
1, 'Henk', 'Janssen', 'Amsterdam'
3, 'Sjoerd', 'Vermeulen', 'Maastricht'

We kunnen de LIKE ook gebruiken in combinatie met NOT

SELECT * FROM Persoon WHERE woonplaats NOT LIKE '%en'
Resultaat
2, 'Petra', 'de klomp', 'Nijmegen'
4, 'Mieke', 'Sterk', 'Amsterdam'

De volgende dataset is de inhoud van de tabel Adres.

id, voornaam, achternaam, postcode
1, 'Henk', 'Janssen', '1297DX'
2, 'Petra', 'de klomp', '7201ZP'
3, 'Sjoerd', 'Vermeulen', '7201DT'
4, 'Mieke', 'Sterk', '1337DL'

We willen nu alle mensen die woonachtig zijn in het postcode gebied 7201 opvragen.

SELECT * FROM Persoon WHERE postcode LIKE '7201__'
id, voornaam, achternaam, postcode
2, 'Petra', 'de klomp', '7201ZP'
3, 'Sjoerd', 'Vermeulen', '7201DT'