SQL — LIKE

SQL LIKE SQL Server Oracle SQL Fiddle

Znáte všechny taje, které SQL operátor LIKE nabízí? Vsadíme se, že o některých možná ani nevíte! 😉

Všechny příklady z tohoto návodu si můžete vyzkoušet on-line. Pro naše účely totiž bohatě postačí on-line databáze SQL Fiddle. Název v tomto případě přesně označuje účel. Fiddle totiž znamená hrát si.

Vytvořte si tabulku s daty

sql-fiddle

Zkopírujte následující kód a vložte do levé části SQL Fiddle. Pak klikněte na tlačítko Build Schema. Vytvoří se tabulka i s několika testovacími řádky.

CREATE TABLE students
( 
    id         INT, 
    first_name VARCHAR(50), 
    last_name  VARCHAR(50)  
); 


INSERT INTO students VALUES (1, 'Jana', 'Dvořáková');
INSERT INTO students VALUES (2, 'Steve', 'Jobs');
INSERT INTO students VALUES (3, 'Jan', 'Novák');
INSERT INTO students VALUES (4, 'John', 'Lennon');
INSERT INTO students VALUES (5, 'Bill', 'Gates');
INSERT INTO students VALUES (6, 'Paul', 'McCartney');
INSERT INTO students VALUES (7, 'JAN_ADAM', 'V.');
INSERT INTO students VALUES (8, 'XXX', 'yk%m*6%_a');

Vlastní SQL příkazy potom budete psát do pravé části a spouštět tlačítkem Run SQL.

Syntaxe

Syntaxe operátoru LIKE není složitá.

% Procento nahrazuje více znaků nebo také žádný znak.
_ Podtržítko nahrazuje jeden libovolný znak.
\ Zpětné lomítko je tzv. Escape znak. Díky němu můžeme vyhledávat v řetězci znaky `%` a `_`.

Příklady

Křestní jména začínající na "J"

SELECT * FROM students
    WHERE first_name LIKE 'J%';
| id | first_name | last_name |
|----|------------|-----------|
|  1 |       Jana | Dvořáková |
|  3 |        Jan |     Novák |
|  4 |       John |    Lennon |
|  7 |   JAN_ADAM |        V. |

Příjmení, která obsahují "a"

SELECT * FROM students
    WHERE last_name LIKE '%a%';
| id | first_name | last_name |
|----|------------|-----------|
|  5 |       Bill |     Gates |
|  6 |       Paul | McCartney |
|  8 |        XXX | yk%m*6%_a |

Příjmení, která neobsahují "a"

SELECT * FROM students
    WHERE last_name NOT LIKE '%a%';
| id | first_name | last_name |
|----|------------|-----------|
|  1 |       Jana | Dvořáková |
|  2 |      Steve |      Jobs |
|  3 |        Jan |     Novák |
|  4 |       John |    Lennon |
|  7 |   JAN_ADAM |        V. |

Křestní jména, které mají jako 2. písmeno "a"

SELECT * FROM students
    WHERE first_name LIKE '_a%';
| id | first_name | last_name |
|----|------------|-----------|
|  1 |       Jana | Dvořáková |
|  3 |        Jan |     Novák |
|  6 |       Paul | McCartney |

Příjmení, která mají délku 5 znaků

SELECT * FROM students
WHERE last_name LIKE '_____';
| id | first_name | last_name |
|----|------------|-----------|
|  3 |        Jan |     Novák |
|  5 |       Bill |     Gates |

Křestní jména nebo příjmení, která obsahují podtržítko "_"

SELECT * FROM students
    WHERE first_name LIKE '%\_%'
        OR last_name LIKE '%\_%';
| id | first_name | last_name |
|----|------------|-----------|
|  7 |   JAN_ADAM |        V. |
|  8 |        XXX | yk%m*6%_a |

Příjmení, která obsahují "%"

SELECT * FROM students
    WHERE last_name LIKE '%\%%';
| id | first_name | last_name |
|----|------------|-----------|
|  8 |        XXX | yk%m*6%_a |

Poznámka: U některých databází, např. SQL Server nebo Oracle, je nutné uvést klíčové slovo ESCAPE.

SELECT * FROM students
    WHERE last_name LIKE '%\%%' ESCAPE '\';

Odběr novinek

Novinky, návody a exkluzivní slevy. Získejte informace jako první. Je to zdarma a odhlásit se můžete kdykoliv.

Copyright © 2018-2021, Colorbee, s.r.o.

Design by grafikli.cz

Používáme cookies pro lepší uživatelský zážitek. Používáním webu s tím vyjadřujete souhlas a zároveň potvrzujete, že jste se seznámil/a s Prohlášením o ochraně osobních údajů.

Fotografie: lektoři, grafikli.cz, icons8.com