..


Sponzorované odkazy

Regulární výrazy v MySQL dotaz

Článek napsal Max Bossi

Vnitřní motor má nativní MySQL - kromě běžných operátorů rovnosti, nerovnosti a podobnost (jako) - velmi užitečná operátor: REGEXP operátora.
Jak již název napovídá, provozovatel REGEXP využívá sílu regulárních výrazů provádět složité vyhledávání v databázi MySQL. Syntaxe je jednoduchá:






 SELECT FIELD_NAME







 Z table_name







 Kde FIELD_NAME REGEXP projevu;

 
Pojďme si je jednoduchý souhrnnou tabulku z hlavních postav, a speciální syntaxe, použitých ve výrazu srovnání:

^ Začátek řetězce
$ Konci řetězce
. Libovolný znak
[...] Jakékoliv znaků v závorce
[^...] Libovolný znak kromě těch v hranatých závorkách
| Samostatné řetězce znaků a jejich alternativy
* Nula nebo více opakování předchozího znaku nebo řetězce
+ Jeden nebo více opakování předchozího znaku nebo řetězce
{N} "N" charakter nebo opakování předchozího řetězce
{Min, max} Opakuje předchozího znaku nebo řetězec několikrát mezi minimální a maximální

Vyrábíme několik praktických příkladů, které jako obvykle stojí za tisíc slov ...
Pro jednoduchost budeme odkazovat na hypotetickou kalendáře databáze obsahující jména našich přátel.

1) Zjistili jsme všechna jména začínající na "m"

 



 SELECT jméno z kalendáře WHERE nazev REGEXP '^ m;

 
Náš dotaz vrátí, například:
  • M ara
  • M oblouk
  • M ární
  • Ilena M
2) Najdeme všechny názvy, které končí "nebo"
 



 SELECT jméno z kalendáře WHERE nazev REGEXP 'a $';

 
Náš dotaz vrátí, například:
  • Nebo Philip
  • Světel nebo
  • Marc a
  • Moři nebo
  • Paul nebo
3) Najdeme všechna jména začínající na "M" a nakonec "nebo"
 



 SELECT jméno z kalendáře WHERE nazev REGEXP '^ m + o $';

 
Náš dotaz vrátí, například:
  • M oblouk nebo
  • M ari nebo
4) Najdeme všechny názvy, které obsahují písmeno "r"
 



 SELECT jméno z kalendáře, kde "R" Jméno REGEXP;

 
Náš dotaz vrátí, například:
  • R CLA
  • Ale r
  • Ale co r
  • Ale já jsem r
5) Zjistili jsme, všechny názvy, které obsahují skupiny písmen ", ale" nebo "I"
 



 SELECT jméno z kalendáře WHERE nazev REGEXP 'ma | ra;

 
Náš dotaz vrátí, například:
  • I luc
  • Ale ra
  • Ale RCO
  • Ale já jsem r
6) Zjistili jsme, všechny názvy, které neobsahují písmena "M" a "a"
 



 SELECT jméno z kalendáře KDE jméno REGEXP '[^ ma];

 
Náš dotaz vrátí, například:
  • Filip
  • Lucio
Nechávám čtenáře, aby dále testovat schopnost REGEXP operátora, protože možných oblastí použití je tak mnoho a je těžké shrnout v krátkém článku, protože to má být.

Ve stejné kategorii ...
E-Learning
MS Access (Advanced) MS Access (Advanced)
Naučte se vytvářet a spravovat databáze snadno a rychle. Od 29 €.
MySQL (kurz) MySQL (kurz)
Správa open-source databáze. Od 39 €.
SQL a databází (kurz) SQL a databází (kurz)
Vytváření a správa relační databáze. Od 39 €.
Sponzorované odkazy