Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Używanie Like In MySQL do operacji wyszukiwania przy użyciu wzorca

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak przechowywać dane JSON w MySQL?

  2. Jak chronić bazy danych MySQL przed kampaniami ransomware

  3. Jak działa funkcja REGEXP_INSTR() w MySQL

  4. Usuń wiele wierszy, zaznaczając pola wyboru za pomocą PHP

  5. Wskazówki dotyczące zapewniania wydajności bazy danych MySQL — część pierwsza