MySQL正则表达式:如何将字符串中的数字与\ d匹配?

时间:2016-08-29 12:55:44

标签: mysql ruby-on-rails regex

我有一个列release_date,它以字符串格式存储日期(不是DATETIME格式。因为它们有时可以是任何其他字符串文字)。

我希望根据给定的月份和年份查找所有记录,但是可以找到任何日期。

试过以下但不适合我,

> Post.find(:all, :conditions => ["release_date RLIKE ? AND deleted_at is null", "^\d{2}-01-2016"])

当我通过提供直接日期来尝试同样的事情时,它可以正常工作。

> Post.find(:all, :conditions => ["release_date RLIKE ? AND deleted_at is null", "09-01-2016"])

注意: - 我正在使用Ruby On Rails 2MySQL

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

mysql / posix不支持\d。使用字符类[0-9],它应该工作。或者,您可以将posix字符类用于数字[:digit:]

演示:http://sqlfiddle.com/#!9/b952d/3

http://www.regular-expressions.info/posixbrackets.html