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