..


Linki sponsorowane

Wyrażenia regularne w MySQL zapytanie

Artykuł napisany przez Max Bossi

Silnik MySQL posiada natywne - oprócz typowych operatorów równości, nierówności i podobieństwo (LIKE) - bardzo przydatne operatora: operator REGEXP.
Jak sama nazwa wskazuje, operator REGEXP wykorzystuje możliwości wyrażeń regularnych do wykonywania złożonych wyszukiwań w naszej bazie danych MySQL. Składnia jest prosta:






 SELECT field_name







 Z nazwa_tabeli







 GDZIE field_name wyrażenie REGEXP;

 
Pójdźmy dalej prostej tabeli podsumowanie głównych bohaterów i szczególne składni w wyrażeniu porównania:

^ Początku łańcucha
$ Koniec łańcucha
. Każda postać
[...] Każdy ze znaków w nawiasach
[^...] Dowolny znak z wyjątkiem tych, w nawiasach kwadratowych
| Oddzielne ciągi znaków lub ich odpowiedników
* Zero lub więcej powtórzeń poprzedniego znaku lub łańcucha
+ Jeden lub więcej powtórzeń poprzedniego znaku lub łańcucha
{N} "N" charakteru lub powtórzenie poprzedni napis
{Min, max} Powtarza poprzedni znak lub ciąg znaków na liczbę razy, między minimalną i maksymalną

Wykonujemy kilka praktycznych przykładów, które, jak zwykle, jest wart tysiąca słów ...
Dla uproszczenia będziemy się odnosić do hipotetycznych bazy danych kalendarza zawierającego nazwiska naszych znajomych.

1) Znajdziemy wszystkie nazwy zaczynające się od "m"

 



 Wybierz nazwę z kalendarza WHERE nazwa REGEXP '^ m;

 
Nasze zapytanie będzie, na przykład:
  • M ara
  • M arch
  • M ary
  • Ilena M
2) Uważamy, wszystkie nazwy, które kończą się "lub"
 



 Wybierz nazwę z kalendarza WHERE nazwa REGEXP "lub $ ';

 
Nasze zapytanie będzie, na przykład:
  • Lub Philip
  • Światła lub
  • Marc i
  • Morzu lub
  • Paul lub
3) Znajdujemy wszystkie nazwy zaczynające się od "m" i ostatecznie "lub"
 



 Wybierz nazwę z kalendarza WHERE nazwa REGEXP '^ m + o $ ";

 
Nasze zapytanie będzie, na przykład:
  • M łuku lub
  • M ari lub
4) Uważamy, wszystkie nazwy, które zawierają literę "r"
 



 Wybierz nazwę z kalendarza WHERE nazwa REGEXP 'r';

 
Nasze zapytanie będzie, na przykład:
  • R cla
  • Ale r
  • Ale co r
  • Ale r
5) Uważamy, wszystkie nazwy, które zawierają grupy liter "a" lub "I"
 



 Wybierz nazwę z kalendarza WHERE nazwa REGEXP "ma | ra";

 
Nasze zapytanie będzie, na przykład:
  • I luc
  • Ale ra
  • Ale RCO
  • Ale r
6) Uważamy, wszystkie nazwy, które nie zawierają litery "m" i "a"
 



 Wybierz nazwę z kalendarza WHERE nazwa REGEXP "[^ ma];

 
Nasze zapytanie będzie, na przykład:
  • Philip
  • Lucio
Zostawiam czytelnikowi dalsze badania potencjalnego operatora REGEXP, ponieważ możliwe obszary zastosowania są tak liczne i trudno jest streścić w krótkim artykule, jak to ma być.

W tej samej kategorii ...
E-Learning
MS Access (zaawansowane) MS Access (zaawansowane)
Dowiedz się, jak tworzyć i zarządzać bazami danych szybko i łatwo. Począwszy od 29 €.
MySQL (Kurs) MySQL (Kurs)
Zarządzanie bazą danych open-source. Od 39 €.
SQL i bazy danych (pole) SQL i bazy danych (pole)
Tworzenie i zarządzanie relacyjnymi bazami danych. Od 39 €.
Linki sponsorowane