sql >> Databasteknik >  >> RDS >> Mysql

Använda Like i MySQL för sökoperationer med hjälp av mönster

Denna handledning är en del av serien Lär dig grundläggande SQL-frågor med MySQL. I den här handledningen kommer vi att diskutera SQL-frågor för att utföra sökoperationer på tabelldata i MySQL med hjälp av WHERE-satsen med LIKE-villkoret.

Som skick

GILLA och GILLA INTE villkor kan användas för att utföra sökoperationer på tabelldata med det angivna mönstret.

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

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

Frågeförklaring

GILLA condition kan användas för att söka i en specifik kolumn med det angivna mönstret. Vi kan använda LIKE-villkoret med WHERE för att utföra sökoperationerna.

Vi måste specificera minst ett villkor med hjälp av WHERE-satsen för att raderna ska kvalificera sig för radering annars kommer hela tabellen att raderas. Alla rader i tabellen raderas utan villkoret.

Vi kan använda de nedan nämnda jokertecken med LIKE-villkoret för att förfina sökresultaten.

Procent (%) - Det representerar noll, ett eller flera tecken

Understreck (_) - Det representerar ett enda tecken

Vi kan också använda nyckelordet ESCAPE för att inkludera jokertecken i sökresultaten.

Exempel

Det här avsnittet ger exempel på hur du kan utföra sökoperationer med villkoret LIKE med WHERE-satsen. Använd den nedan nämnda frågan för att skapa användartabellen med id, förnamn, efternamn och aktiva kolumner för att lagra användardata.

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

Den nedan nämnda frågan kan användas för att infoga data i användartabellen.

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

Den ovan nämnda frågan kommer att infoga 5 rader i tabellen med id, förnamn, efternamn och aktiva kolumner för att representera 5 olika användare.

Nu kommer vi att använda LIKE-villkoret med WHERE-satsen för att söka antingen i förnamns- eller efternamnskolumnen i användartabellen. Det kan göras med hjälp av WHERE LIKE i MySQL som visas nedan.

# 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
 

Ovannämnda frågor utför en exakt sökning med WHERE LIKE och det givna mönstret. LIKE-villkoret ignorerar fallet medan det matchar med kolumnvärdena. Det ger samma resultat med versaler eller gemener.

Nu kommer vi att använda jokertecknet för att utföra sökningen som visas nedan.

# 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

Den nedan nämnda frågan förklarar användningen av nyckelordet ESCAPE med LIKE-villkoret.

# 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

Så här kan vi använda LIKE-villkoret med WHERE-satsen med och utan jokertecken för att utföra sökoperationer med det angivna mönstret.


  1. Välj kolumner över olika databaser

  2. Heroku Postgres:För många kontakter. Hur dödar jag dessa anslutningar?

  3. Hur man kör en .SQL-skriptfil med c#

  4. WHERE_IN fråga med en sammansatt nyckel?