2012-08-08 83 views
3
工作

我有这个正则表达式,在我所有的测试工作正常,但我无法使它在MySQL的工作,尽管我一直在google搜索和尝试的这种变化的例子:适应正则表达式与MySQL

^[A-Za-z]{2,4}-\d{3}-\d{2}$

在Javascript中,它正确地匹配AA-001-01通过ZZZZ-999-99等方面都具有不同的调整试过在MySQL中的正则表达式,都没有运气:

SELECT * FROM products WHERE sku REGEXP '^[A-Za-z]{2,4}-\d{3}-\d{2}$' 

(经t能包含成千上万的记录,其中sku上面给出的样本)匹配

是最好的,我可以告诉,Mysql的正则表达式的支持是有限的,但如果这不能正常工作,或者是有一些进一步的语法考虑使用MySQL的?

回答

4

要匹配,你应该使用[0-9][[:digit:]]一个数字。

试试这个:

SELECT col1, col2, ..., coln 
FROM products 
WHERE sku REGEXP '^[A-Za-z]{2,4}-[0-9]{3}-[0-9]{2}$' 

看到它联机工作:sqlfiddle

参见REGEXP的使用说明书。

+0

人,我的头在旋转的正则表达式色变,我花了太多的时间,试图弄明白,因为当我看到它做了,我想割开我的喉咙,因为它是如此该死容易.....谢谢你,先生! – GDP 2012-08-08 22:19:17

+0

不客气。 – 2012-08-08 22:21:58