..


Sponzorované odkazy

Regulárne výrazy v MySQL dotaz

Článok napísal Max Bossi

Vnútorná motor má natívne MySQL - okrem bežných operátorov rovnosti, nerovnosti a podobnosť (ako) - veľmi užitočná operátor: regexp operátora.
Ako už názov napovedá, prevádzkovateľ regexp využíva silu regulárnych výrazov vykonávať zložité vyhľadávanie v databáze MySQL. Syntax je jednoduchá:






 SELECT FIELD_NAME







 Z table_name







 Kde FIELD_NAME regexp prejavu;

 
Poďme si je jednoduchý súhrnnú tabuľku z hlavných postáv, a špeciálne syntaxe, použitých vo výraze porovnanie:

^ Začiatok reťazca
$ Konci reťazca
. Ľubovoľný znak
[...] Akékoľvek znakov v zátvorke
[^...] Ľubovoľný znak okrem tých v hranatých zátvorkách
| Samostatné reťazce znakov a ich alternatívy
* Nula alebo viac opakovaní predchádzajúceho znaku alebo reťazca
+ Jeden alebo viac opakovaní predchádzajúceho znaku alebo reťazca
{N} "N" charakter alebo opakovanie predchádzajúceho reťazca
{Min, max} Opakuje predchádzajúceho znaku alebo reťazec niekoľkokrát medzi minimálnou a maximálnou

Vyrábame niekoľko praktických príkladov, ktoré ako obvykle stojí za tisíc slov ...
Pre jednoduchosť budeme odkazovať na hypotetickú kalendára databázy obsahujúce mená našich priateľov.

1) Zistili sme všetky mená začínajúce na "m"

 



 SELECT meno z kalendára WHERE nazov regexp '^ m;

 
Náš dotaz vráti, napríklad:
  • M ara
  • M oblúk
  • M árne
  • Ilene M
2) Nájdeme všetky názvy, ktoré končí "alebo"
 



 SELECT meno z kalendára WHERE nazov regexp 'a $';

 
Náš dotaz vráti, napríklad:
  • Alebo Philip
  • Svetiel alebo
  • Marc a
  • Mori alebo
  • Paul alebo
3) Nájdeme všetky mená začínajúce na "M" a nakoniec "alebo"
 



 SELECT meno z kalendára WHERE nazov regexp '^ m + o $';

 
Náš dotaz vráti, napríklad:
  • M oblúk alebo
  • M ari alebo
4) Nájdeme všetky názvy, ktoré obsahujú písmeno "r"
 



 SELECT meno z kalendára, kde "R" Meno regexp;

 
Náš dotaz vráti, napríklad:
  • R CLA
  • Ale r
  • Ale čo r
  • Ale ja som r
5) Zistili sme, všetky názvy, ktoré obsahujú skupiny písmen ", ale" alebo "I"
 



 SELECT meno z kalendára WHERE nazov regexp 'ma | ra;

 
Náš dotaz vráti, napríklad:
  • Aj luc
  • Ale ra
  • Ale RCO
  • Ale ja som r
6) Zistili sme, všetky názvy, ktoré neobsahujú písmená "M" a "a"
 



 SELECT meno z kalendára KDE meno regexp '[^ ma];

 
Náš dotaz vráti, napríklad:
  • Filip
  • Lucio
Nechávam čitateľa, aby ďalej testovať schopnosť regexp operátora, pretože možných oblastí použitia je tak veľa a je ťažké zhrnúť v krátkom článku, pretože to má byť.

V rovnakej kategórii ...
E-Learning
MS Access (Advanced) MS Access (Advanced)
Naučte sa vytvárať a spravovať databázy jednoducho a rýchlo. Od 29 €.
MySQL (kurz) MySQL (kurz)
Správa open-source databázy. Od 39 €.
SQL a databáz (kurz) SQL a databáz (kurz)
Vytváranie a správa relačnej databázy. Od 39 €.
Sponzorované odkazy