2012-04-01 154 views
0

我需要一個MySQL模式來匹配一個數字,然後是一個問號。 我需要像 ...像'%[0-9]?%' 但我不知道如何創建此正則表達式。MySql模式匹配

http://dev.mysql.com/doc/refman/5.0/en/pattern-matching.html沒有幫助。

謝謝!

+0

爲什麼它沒有幫助? – 2012-04-01 15:16:51

+0

我有一列文字類型。我必須在其中找到一些記錄。 我已經嘗試了SELECT * FROM WHERE列像'%[0-9]?%'; SELECT * FROM WHERE列like'%^ [0-9]?$%'等等... – 2012-04-01 15:26:56

回答

1

我猜你正在尋找的東西是這樣的:

select * from table 
where field rlike '[0-9]\\?' 

記住逃脫問號。否則,它會使數字可選。

Source

+1

謝謝。這工作得很好。我還會看看rlike語法。 – 2012-04-01 15:30:15

+0

歡迎Дамян:) – 2012-04-01 15:31:29

4

你可以試試這個:

SELECT * FROM YourTable WHERE YourField REGEXP '[0-9]\\?' 

,將返回行,其中YourField包含一個數字,後跟一個?在價值的任何地方。

如果您希望它只匹配整個字段後跟一個?。即9?那麼你可以使用這個表達式來代替:

^[0-9]\\?$ 
+0

這不會逃避?-sign – 2012-04-01 15:29:14

+0

@ДамянСтанчев你的權利,我完全忘記了逃跑,我已經糾正它。 – Robbie 2012-04-01 15:30:18