Ten samouczek jest częścią serii Naucz się podstawowych zapytań SQL przy użyciu MySQL. W tym samouczku omówimy zapytania SQL do wykonywania operacji wyszukiwania na danych tabeli w MySQL przy użyciu klauzuli WHERE z warunkiem LIKE.
Podobny stan
LUBIĘ i NIE PODOBNE warunki mogą być użyte do wykonywania operacji wyszukiwania na danych tabeli przy użyciu określonego wzorca.
# LIKE - Syntax
SELECT * FROM `table_name` WHERE `column_name` LIKE '<pattern>';
# NOT LIKE - Syntax
SELECT * FROM `table_name` WHERE `column_name` NOT LIKE '<pattern>';
Wyjaśnienie zapytania
LUBIĘ warunek może służyć do wyszukiwania w określonej kolumnie przy użyciu określonego wzorca. Możemy użyć warunku LIKE z WHERE, aby wykonać operacje wyszukiwania.
Musimy określić co najmniej jeden warunek za pomocą klauzuli WHERE, aby wiersze kwalifikowały się do usunięcia, w przeciwnym razie cała tabela zostanie usunięta. Wszystkie wiersze tabeli są usuwane bez warunku.
Możemy użyć poniższych symboli wieloznacznych z warunkiem LIKE, aby zawęzić wyniki wyszukiwania.
Procent (%) - Reprezentuje zero, jeden lub wiele znaków
Podkreślenie (_) - Reprezentuje jedną postać
Możemy również użyć słowa kluczowego ESCAPE, aby uwzględnić symbole wieloznaczne w wynikach wyszukiwania.
Przykłady
Ta sekcja zawiera przykłady wykonywania operacji wyszukiwania przy użyciu warunku LIKE z klauzulą WHERE. Użyj poniższego zapytania, aby utworzyć tabelę użytkowników zawierającą identyfikator, imię, nazwisko i aktywne kolumny do przechowywania danych użytkownika.
# 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`));
Poniższe zapytanie może zostać użyte do wstawienia danych do tabeli użytkowników.
# 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 );
Wspomniane powyżej zapytanie wstawi do tabeli 5 wierszy z identyfikatorem, imieniem, nazwiskiem i aktywnymi kolumnami reprezentującymi 5 różnych użytkowników.
Teraz użyjemy warunku LIKE z klauzulą WHERE, aby przeszukać kolumny imienia lub nazwiska w tabeli użytkowników. Można to zrobić za pomocą opcji GDZIE PODOBNE w MySQL, jak pokazano poniżej.
# 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
Wyżej wymienione zapytania dokonują dokładnego wyszukiwania za pomocą WHERE LIKE i podanego wzorca. Warunek LIKE ignoruje wielkość liter podczas dopasowywania wartości kolumn. Daje ten sam wynik z wielkimi lub małymi literami.
Teraz użyjemy symbolu wieloznacznego, aby przeprowadzić wyszukiwanie, jak pokazano poniżej.
# 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
Poniższe zapytanie wyjaśnia użycie słowa kluczowego ESCAPE z warunkiem LIKE.
# 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
W ten sposób możemy użyć warunku LIKE z klauzulą WHERE z i bez znaku wieloznacznego, aby wykonać operacje wyszukiwania przy użyciu określonego wzorca.