2013-06-04 36 views
5

tôi có trong cột bảng pnum_sNhận chỉ số sử dụng regexp

tôi cần có được duy nhất mà hàng, trong đó giá trị trong cột pnum_s là đúng 10 biểu tượng và tất cả các biểu tượng này chỉ có chữ số

gì truy vấn phải viết cho điều này?

tôi đang cố gắng

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

Nhưng đây không phải lợi nhuận 0 hàng

+0

'REGEXP '\ d {10}' ':

http://dev.mysql.com/doc/refman/5.1/en/regexp.html#operator_regexp

gì bạn đang tìm kiếm này là gì? –

+0

Bạn có cần thoát khỏi '\ d' không? –

+0

Có thể, tôi không quen với cách thức MySQL biểu thức thông thường nhưng theo (http://www.regular-expressions.info/mysql.html) dấu gạch chéo ngược cần phải được thoát. Vấn đề OP có thể là bạn nên sử dụng '\ $' thay vì chỉ là '$'. –

Trả lời

11

Mẫu bạn đang tìm kiếm là '^[0-9]{10}$' hoặc '^[[:digit:]]{10}$'.

Mọi thứ đều là in the manual.

+0

Tôi đã thử cách PCRE '\ d' và không thành công. :( – peter

4

Tôi nghĩ rằng với Mysql bạn sẽ muốn một cái gì đó như thế này:

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

thử mô hình này:

'^[0-9]{10}$' 
5

Kiểm tra trang tham chiếu.

SELECT * FROM mytable WHERE pnum_s REGEXP '^[[:digit:]]{10}$'; 
Các vấn đề liên quan