sql >> Databáze >  >> RDS >> Mysql

Použití jako v MySQL pro vyhledávací operace pomocí vzoru

Tento tutoriál je součástí série Naučte se základní SQL dotazy pomocí MySQL. V tomto tutoriálu probereme SQL dotazy k provádění vyhledávacích operací na datech tabulky v MySQL pomocí klauzule WHERE s podmínkou LIKE.

To se mi líbí podmínka

LIKE a NELÍBÍ se podmínky lze použít k provádění vyhledávacích operací na datech tabulky pomocí zadaného vzoru.

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

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

Vysvětlení dotazu

LIKE podmínku lze použít k vyhledávání v konkrétním sloupci pomocí zadaného vzoru. K provádění vyhledávacích operací můžeme použít podmínku LIKE s WHERE.

Musíme zadat alespoň jednu podmínku pomocí klauzule WHERE, aby se řádky kvalifikovaly pro odstranění, jinak bude vymazána celá tabulka. Všechny řádky tabulky budou odstraněny bez podmínky.

K upřesnění výsledků vyhledávání můžeme použít níže uvedené zástupné znaky s podmínkou LIKE.

Procento (%) - Představuje nulu, jeden nebo více znaků

Podtržítko (_) - Představuje jeden znak

Můžeme také použít klíčové slovo ESCAPE k zahrnutí zástupných znaků do výsledků vyhledávání.

Příklady

Tato část obsahuje příklady provádění vyhledávacích operací pomocí podmínky LIKE s klauzulí WHERE. Pomocí níže uvedeného dotazu vytvořte uživatelskou tabulku obsahující sloupce id, jméno, příjmení a aktivní sloupce pro uložení uživatelských dat.

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

K vložení dat do uživatelské tabulky lze použít níže uvedený dotaz.

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

Výše zmíněný dotaz vloží do tabulky 5 řádků obsahujících id, jméno, příjmení a aktivní sloupce, které představují 5 různých uživatelů.

Nyní použijeme podmínku LIKE s klauzulí WHERE k vyhledávání buď ve sloupcích jméno nebo příjmení uživatelské tabulky. To lze provést pomocí WHERE LIKE v MySQL, jak je uvedeno níže.

# 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
 

Výše uvedené dotazy provádějí přesné vyhledávání pomocí WHERE LIKE a daného vzoru. Podmínka LIKE ignoruje velká a malá písmena při porovnávání s hodnotami sloupce. Poskytuje stejný výsledek s velkými nebo malými písmeny.

Nyní použijeme zástupný znak k provedení vyhledávání, jak je uvedeno níže.

# 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

Níže uvedený dotaz vysvětluje použití klíčového slova ESCAPE s podmínkou 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

Takto můžeme použít podmínku LIKE s klauzulí WHERE s a bez zástupných znaků k provádění vyhledávacích operací pomocí zadaného vzoru.


  1. Nerozlišují názvy funkcí v PostgreSQL velká a malá písmena?

  2. Nalezení dalšího dostupného ID v MySQL

  3. Co se stane s ID primárního klíče, když překročí limit?

  4. Jak přejmenovat tabulku v SQL