Deze tutorial maakt deel uit van de serie Learn Basic SQL Queries Using MySQL. In deze zelfstudie bespreken we SQL-query's om zoekbewerkingen uit te voeren op de tabelgegevens in MySQL met behulp van de WHERE-component met de LIKE-voorwaarde.
Like voorwaarde
De LIKE en NIET LIKE voorwaarden kunnen worden gebruikt om zoekbewerkingen uit te voeren op de tabelgegevens met behulp van het opgegeven patroon.
# LIKE - Syntax
SELECT * FROM `table_name` WHERE `column_name` LIKE '<pattern>';
# NOT LIKE - Syntax
SELECT * FROM `table_name` WHERE `column_name` NOT LIKE '<pattern>';
Uitleg zoekopdracht
De LIKE voorwaarde kan worden gebruikt om in een specifieke kolom te zoeken met behulp van het opgegeven patroon. We kunnen de LIKE-voorwaarde gebruiken met WHERE om de zoekbewerkingen uit te voeren.
We moeten ten minste één voorwaarde specificeren met behulp van de WHERE-component om de rijen in aanmerking te laten komen voor verwijdering, anders wordt de hele tabel gewist. Alle rijen van de tabel worden verwijderd zonder de voorwaarde.
We kunnen de onderstaande jokertekens gebruiken met de LIKE-voorwaarde om de zoekresultaten te verfijnen.
Percentage (%) - Het vertegenwoordigt nul, één of meerdere tekens
Onderstrepingsteken (_) - Het vertegenwoordigt een enkel teken
We kunnen ook het trefwoord ESCAPE gebruiken om de jokertekens in zoekresultaten op te nemen.
Voorbeelden
Deze sectie bevat voorbeelden voor het uitvoeren van zoekbewerkingen met behulp van de LIKE-voorwaarde met de WHERE-component. Gebruik de onderstaande query om de gebruikerstabel te maken met de id, voornaam, achternaam en actieve kolommen om gebruikersgegevens op te slaan.
# Create the User Table
CREATE TABLE `enterprise`.`user` (
`user_id` BIGINT NOT NULL,
`first_name` VARCHAR(45) ,
`last_name` VARCHAR(45),
`active` TINYINT(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`user_id`));
De onderstaande query kan worden gebruikt om gegevens in de gebruikerstabel in te voegen.
# Insert Rows - All Columns
INSERT INTO `user` ( `user_id`, `first_name`, `last_name`, `active` ) VALUES
( 1, 'John', 'Smith', 1 ),
( 2, 'Rick', 'Jones', 1 ),
( 3, 'Catherine', 'Ponting', 0 ),
( 4, 'Harsh', 'Upadhyay', 1 ),
( 5, 'Tajwinder', 'Singh', 0 );
De bovengenoemde zoekopdracht voegt 5 rijen in de tabel in met de id, voornaam, achternaam en actieve kolommen om 5 verschillende gebruikers te vertegenwoordigen.
Nu gebruiken we de LIKE-voorwaarde met de WHERE-component om te zoeken in de voornaam- of achternaamkolommen van de gebruikerstabel. Het kan worden gedaan met behulp van de WHERE LIKE in MySQL, zoals hieronder weergegeven.
# LIKE - Exact search - Single Condition
SELECT * FROM `user` WHERE `first_name` LIKE 'John';
SELECT * FROM `user` WHERE `first_name` LIKE 'john';
# Result
1 John Smith 1
# LIKE - Exact search - Multiple Conditions
SELECT * FROM `user` WHERE `first_name` LIKE 'Rick' AND `last_name` LIKE 'Jones';
# Result
2 Rick Jones 1
# NOT LIKE - Exact search - Single Condition
SELECT * FROM `user` WHERE `first_name` NOT LIKE 'John';
# Result
2 Rick Jones 1
3 Catherine Ponting 0
4 Harsh Upadhyay 1
5 Tajwinder Singh 0
De bovengenoemde zoekopdrachten voeren een exacte zoekopdracht uit met WHERE LIKE en het opgegeven patroon. De LIKE-voorwaarde negeert het geval terwijl het overeenkomt met de kolomwaarden. Het geeft hetzelfde resultaat met hoofdletters of kleine letters.
Nu zullen we het jokerteken gebruiken om de zoekopdracht uit te voeren zoals hieronder weergegeven.
# LIKE - % Wildcard search
SELECT * FROM `user` WHERE `first_name` LIKE '%ine';
# Result
3 Catherine Ponting 0
# LIKE - % Wildcard search
SELECT * FROM `user` WHERE `first_name` LIKE 'Cat%in%';
# Result
3 Catherine Ponting 0
# LIKE - % Wildcard search
SELECT * FROM `user` WHERE `first_name` LIKE '%in%';
# Result
3 Catherine Ponting 0
5 Tajwinder Singh 0
# LIKE - _ Wildcard search
SELECT * FROM `user` WHERE `first_name` LIKE '_ohn';
# Result
1 John Smith 1
# LIKE - % & _ Wildcard search
SELECT * FROM `user` WHERE `first_name` LIKE '_oh%';
# Result
1 John Smith 1
De onderstaande zoekopdracht verklaart het gebruik van het ESCAPE-sleutelwoord met de LIKE-voorwaarde.
# Insert Rows - All Columns
INSERT INTO `user` ( `user_id`, `first_name`, `last_name`, `active` ) VALUES
( 6, 'Jo%hn', 'Waugh', 1 ),
( 7, 'Rick', 'Jones', 1 );
# LIKE - ESCAPE - Exact search
SELECT * FROM `user` WHERE `first_name` LIKE '%#%hn' ESCAPE '#';
# Result
6 Jo%hn Waugh 1
Dit is hoe we de LIKE-voorwaarde met de WHERE-component met en zonder jokerteken kunnen gebruiken om zoekbewerkingen uit te voeren met behulp van het opgegeven patroon.