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

Brug Like i MySQL til søgeoperationer ved hjælp af mønster

Denne vejledning er en del af serien Lær grundlæggende SQL-forespørgsler ved hjælp af MySQL. I denne øvelse vil vi diskutere SQL-forespørgsler til at udføre søgeoperationer på tabeldataene i MySQL ved hjælp af WHERE-sætningen med LIKE-betingelsen.

Som tilstand

LIKE og IKKE LIKE betingelser kan bruges til at udføre søgeoperationer på tabeldata ved hjælp af det angivne mønster.

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

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

Forespørgselsforklaring

LIKE betingelse kan bruges til at søge i en specifik kolonne ved hjælp af det angivne mønster. Vi kan bruge LIKE-betingelsen med WHERE til at udføre søgeoperationerne.

Vi skal specificere mindst én betingelse ved at bruge WHERE-sætningen for at rækkerne kvalificerer sig til sletning, ellers vil hele tabellen blive slettet. Alle rækker i tabellen bliver slettet uden betingelsen.

Vi kan bruge de nedenfor nævnte jokertegn med LIKE-betingelsen til at forfine søgeresultaterne.

Procent (%) - Det repræsenterer nul, ét eller flere tegn

Understregning (_) - Det repræsenterer et enkelt tegn

Vi kan også bruge søgeordet ESCAPE til at inkludere jokertegnene i søgeresultaterne.

Eksempler

Dette afsnit giver eksempler på at udføre søgeoperationer ved hjælp af LIKE-betingelsen med WHERE-sætning. Brug nedenstående forespørgsel til at oprette brugertabellen med id, fornavn, efternavn og aktive kolonner til at gemme brugerdata.

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

Nedenstående forespørgsel kan bruges til at indsætte data i brugertabellen.

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

Ovennævnte forespørgsel vil indsætte 5 rækker i tabellen med id, fornavn, efternavn og aktive kolonner til at repræsentere 5 forskellige brugere.

Nu vil vi bruge LIKE-betingelsen med WHERE-sætningen til at søge enten i kolonnerne for fornavn eller efternavn i brugertabellen. Det kan gøres ved at bruge WHERE LIKE i MySQL som vist nedenfor.

# 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
 

Ovennævnte forespørgsler udfører en nøjagtig søgning ved hjælp af WHERE LIKE og det givne mønster. LIKE-betingelsen ignorerer sagen, mens den matcher med kolonneværdierne. Det giver det samme resultat med store eller små bogstaver.

Nu vil vi bruge jokertegnet til at udføre søgningen som vist nedenfor.

# 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

Nedenstående forespørgsel forklarer brugen af ​​ESCAPE-søgeordet med LIKE-betingelsen.

# 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ådan kan vi bruge LIKE-betingelsen med WHERE-sætningen med og uden jokertegn til at udføre søgeoperationer ved hjælp af det angivne mønster.


  1. Postgres-fejl under opdatering af kolonnedata

  2. 4 grunde til at du bør prioritere databaseovervågning i din 2020-planlægning

  3. Leder du efter en enkel fuldtekstsøgning? Prøv MySQL InnoDB + CakePHP med Word Stemming

  4. MySQL 8 Almindelige tabeludtryk CTE