Avatar
mapak
Člen
Avatar
mapak:

Ahoj! Mám problém s výběrem všech položek z databáze (MySQL), které v poznámce obsahují telefonní číslo. (To bych chtěl později z té poznámky extrahovat).
Výběr mám zapsaný takto:

SELECT * FROM `subjekty` WHERE `Poznamka` REGEXP '.*\d{3}[ ]?\d{3}[ ]?\d{3}.*'

Představa je taková, že regulární výraz by měl odhalit všechny sekvence devíti čísel v řadě, ať už oddělených mezerami po třech číslech nebo vcelku. Bohužel, výše uvedený příkaz vrací nulový počet řádků.
Díky za jakékoliv rady!

Editováno 13.3.2015 12:29
 
Odpovědět 13.3.2015 12:27
Avatar
Tukmak
Člen
Avatar
Odpovídá na mapak
Tukmak:

Ahoj, zkus

[0-9]{3}[ ]?[0-9]{3}[ ]?[0-9]{3}

Tady to máš na fiddlu http://sqlfiddle.com/#…

MySQL podporuje poze posixové zástupné třídy... tzn:

\d -> [[:digit:]]
\s -> [[:blank:]]

atd...

Víc si můžeš přečíst na http://dev.mysql.com/…/regexp.html#…

Editováno 13.3.2015 13:28
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 13.3.2015 13:27
Avatar
mapak
Člen
Avatar
mapak:

Vynikající! Děkuju moc! Zkoumal jsem to na několik webech najednou a toho doporučení pro MySQL jsem si nevšiml! Ještě jednou díky!

 
Nahoru Odpovědět 13.3.2015 13:56
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.