Mysql a regexp
Vaclav Ovsik
Vaclav.Ovsik na i.cz
Pondělí Říjen 15 15:02:21 CEST 2001
On Mon, Oct 15, 2001 at 02:14:53PM +0100, Vladimír Náprstek wrote:
> Zdravím,
> potřebuji z tabulky hovorů vybírat určité záznamy podle volaného čísla. Toto
> volané číslo je uloženo jako bigint unsigned takto:
> - nemá úvodní nulu
> - na začátku může být mezinárodní volací znak 420
>
> takže např. 471212121 (Ústí nad Labem) nebo 420471212121.
>
> Ateď potřebuji vybrat hovory na pevnou linku, tj. číslo může začínat 420 a
> pak pokračuje číslem 0-5 nebo číslicí 6, za níž nesmí pokračovat 0 (42060xxx
> je mobil, 42069xxx je Ostrava). napsal jsem si dotaz:
>
> SELECT .... FROM table WHERE num REGEXP '^(420)?([1-5]|6[^0])'....;
>
> jenže MySQL mi vybere i 420604xxxx (jako by prohlásil, že 420 na začátku být
> nemusí, tak tam prostě není, i když tam je...
No to se ale chova spravne.
Co na to jit obracene, tj hledat zaznamy, ktere nejsou mobil (7xx jsou asi
taky mobily ne?)
Neznam MySQL, ale asi tedy
NOT num REGEXP '^(420)?(60|7)'
PS: zajimave uplatneni regex na neznakovou vec :-) Ani by me nenapadlo,
ze to tohle sezere.
--
Vaclav Ovsik email: Vaclav.Ovsik na i.cz
ICZ a.s. phone: +420 19 7488511
fax: +420 19 7488506
Další informace o konferenci Databases