Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Verwendung von Like in MySQL für Suchvorgänge mit Muster

Dieses Tutorial ist Teil der Reihe Learn Basic SQL Queries Using MySQL. In diesem Tutorial werden wir SQL-Abfragen besprechen, um Suchoperationen für die Tabellendaten in MySQL unter Verwendung der WHERE-Klausel mit der LIKE-Bedingung durchzuführen.

Wie Zustand

Das LIKE und NICHT MÖGEN Bedingungen können verwendet werden, um Suchoperationen für die Tabellendaten unter Verwendung des angegebenen Musters durchzuführen.

# LIKE - Syntax
SELECT * FROM `table_name` WHERE `column_name` LIKE '<pattern>';

# NOT LIKE - Syntax
SELECT * FROM `table_name` WHERE `column_name` NOT LIKE '<pattern>';

Erklärung der Abfrage

Das LIKE Bedingung kann verwendet werden, um in einer bestimmten Spalte nach dem angegebenen Muster zu suchen. Wir können die LIKE-Bedingung mit WHERE verwenden, um die Suchoperationen durchzuführen.

Wir müssen mindestens eine Bedingung mit der WHERE-Klausel angeben, damit die Zeilen gelöscht werden können, sonst wird die gesamte Tabelle gelöscht. Alle Zeilen der Tabelle werden ohne die Bedingung gelöscht.

Wir können die unten aufgeführten Platzhalter mit der LIKE-Bedingung verwenden, um die Suchergebnisse zu verfeinern.

Prozent (%) - Es steht für null, ein oder mehrere Zeichen

Unterstrich (_) - Es repräsentiert ein einzelnes Zeichen

Wir können auch das Schlüsselwort ESCAPE verwenden, um die Platzhalter in die Suchergebnisse aufzunehmen.

Beispiele

Dieser Abschnitt enthält Beispiele zum Durchführen von Suchvorgängen unter Verwendung der LIKE-Bedingung mit der WHERE-Klausel. Verwenden Sie die unten aufgeführte Abfrage, um die Benutzertabelle mit den Spalten „ID“, „Vorname“, „Nachname“ und „Aktiv“ zum Speichern von Benutzerdaten zu erstellen.

# 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`));

Die unten genannte Abfrage kann verwendet werden, um Daten in die Benutzertabelle einzufügen.

# 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 );

Die oben erwähnte Abfrage fügt 5 Zeilen in die Tabelle ein, die die Spalten ID, Vorname, Nachname und Aktiv enthalten, um 5 verschiedene Benutzer darzustellen.

Jetzt verwenden wir die LIKE-Bedingung mit der WHERE-Klausel, um entweder in den Vornamen- oder Nachnamenspalten der Benutzertabelle zu suchen. Dies kann mit WHERE LIKE in MySQL erfolgen, wie unten gezeigt.

# 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
 

Die oben genannten Abfragen führen eine exakte Suche mit WHERE LIKE und dem angegebenen Muster durch. Die LIKE-Bedingung ignoriert die Groß-/Kleinschreibung beim Abgleich mit den Spaltenwerten. Es liefert das gleiche Ergebnis mit Groß- oder Kleinschreibung.

Jetzt verwenden wir den Platzhalter, um die Suche wie unten gezeigt durchzuführen.

# 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

Die unten aufgeführte Abfrage erklärt die Verwendung des ESCAPE-Schlüsselworts mit der LIKE-Bedingung.

# 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

So können wir die LIKE-Bedingung mit der WHERE-Klausel mit und ohne Platzhalter verwenden, um Suchoperationen mit dem angegebenen Muster durchzuführen.