我正在尝试更新我的产品数据库,并在简化了一些产品编号后查找重复数据。
以下是我正在尝试的不起作用:
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天”等。
感谢您的帮助。
答案 0 :(得分:3)
MySQL的正则表达式不支持\s
空格。您需要使用[[:space:]]
。你也不需要逃脱破折号:
(-|[[:space:]])[a-zA-Z0-9]+(-|[[:space:]])[a-zA-Z0-9]+