2013-06-04 14 views
5

mam w kolumnie tabeli pnum_sdostać tylko cyfry przy użyciu wyrażenia regularnego

muszę dostać tylko wiersze, których wartość w kolumnie pnum_s jest dokładnie 10 symbol i wszystkie te symbole są tylko cyfry

co kwerenda musi napisać do to?

Staram

SELECT * FROM mytable WHERE pnum_s REGEXP '^\d+$'

ale nie zwraca 0 wierszy

+0

regexp ''\ d {10}''? –

+0

Czy chcesz uciec '\ d'? –

+0

Prawdopodobnie nie jestem zaznajomiony z tym, jak MySQL wykonuje Wyrażenia regularne, ale zgodnie z (http://www.regular-expressions.info/mysql.html) należy uciec przed ukośnikami odwrotnymi. Problemem z OP może być użycie '\ $' zamiast tylko '$'. –

Odpowiedz

11

Wzór, którego szukasz, to '^[0-9]{10}$' lub '^[[:digit:]]{10}$'.

Wszystko jest in the manual.

+0

Próbowałem way PCRE '\ d' i nie powiodło się. :( – peter

4

myślę z Mysql będziemy chcieli coś takiego:

^[[:digit:]]{10}$ 
1

spróbować tego wzoru:

'^[0-9]{10}$' 
Powiązane problemy