Mysql
 sql >> Database >  >> RDS >> Mysql

Utilizzo di Like in MySQL per operazioni di ricerca utilizzando Pattern

Questo tutorial fa parte della serie Learn Basic SQL Query Using MySQL. In questo tutorial parleremo delle query SQL per eseguire operazioni di ricerca sui dati della tabella in MySQL utilizzando la clausola WHERE con la condizione LIKE.

Mi piace Condizione

Il MI PIACE e NON MI PIACE le condizioni possono essere utilizzate per eseguire operazioni di ricerca sui dati della tabella utilizzando il modello specificato.

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

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

Spiegazione della query

Il MI PIACE condizione può essere utilizzata per cercare in una colonna specifica utilizzando il modello specificato. Possiamo usare la condizione LIKE con WHERE per eseguire le operazioni di ricerca.

Dobbiamo specificare almeno una condizione utilizzando la clausola WHERE affinché le righe si qualifichino per l'eliminazione, altrimenti l'intera tabella verrà cancellata. Tutte le righe della tabella vengono eliminate senza la condizione.

Possiamo utilizzare i caratteri jolly sotto indicati con la condizione LIKE per perfezionare i risultati della ricerca.

Percentuale (%) - Rappresenta zero, uno o più caratteri

Carattere di sottolineatura (_) - Rappresenta un singolo carattere

Possiamo anche utilizzare la parola chiave ESCAPE per includere i caratteri jolly nei risultati di ricerca.

Esempi

Questa sezione fornisce esempi per eseguire operazioni di ricerca utilizzando la condizione LIKE con clausola WHERE. Utilizzare la query di seguito menzionata per creare la tabella utente con l'ID, il nome, il cognome e le colonne attive per memorizzare i dati dell'utente.

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

La query sotto indicata può essere utilizzata per inserire dati nella tabella utente.

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

La suddetta query inserirà 5 righe nella tabella con id, nome, cognome e colonne attive per rappresentare 5 utenti diversi.

Ora useremo la condizione LIKE con la clausola WHERE per cercare nelle colonne nome o cognome della tabella utente. Può essere fatto usando WHERE LIKE in MySQL come mostrato di seguito.

# 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
 

Le query sopra menzionate eseguono una ricerca esatta utilizzando WHERE LIKE e il pattern indicato. La condizione LIKE ignora il caso durante la corrispondenza con i valori della colonna. Fornisce lo stesso risultato con lettere maiuscole o minuscole.

Ora utilizzeremo il carattere jolly per eseguire la ricerca come mostrato di seguito.

# 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

La query di seguito illustra l'utilizzo della parola chiave ESCAPE con la condizione 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

Ecco come possiamo utilizzare la condizione LIKE con la clausola WHERE con e senza jolly per eseguire operazioni di ricerca utilizzando il pattern specificato.