2012-04-01 124 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