MySQL REGEXP无法正常工作

时间:2013-03-06 00:01:13

标签: mysql regex concat

我正在尝试更新我的产品数据库,并在简化了一些产品编号后查找重复数据。

以下是我正在尝试的不起作用:

SELECT b.Id as OLDID, c.Id as NEWID
FROM productdata b, productdata c
WHERE b.ProdNum REGEXP CONCAT('^', c.ProdNum, '(\-|\s)[a-zA-Z0-9]+(\-|\s)[a-zA-Z0-9]+')

旧产品编号:WR-101 3天(以及WR-101 1天等)

新产品编号:WR-101

所以基本上我需要一个where子句,它将新产品编号与旧产品编号相匹配,产品编号为“1天”,“3天”等。

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

MySQL的正则表达式不支持\s空格。您需要使用[[:space:]]。你也不需要逃脱破折号:

(-|[[:space:]])[a-zA-Z0-9]+(-|[[:space:]])[a-zA-Z0-9]+