【发布时间】:2012-10-08 01:13:56
【问题描述】:
我正在尝试更新我的产品数据库并在某些产品编号发生更改后查找重复项。
过去更改的项目编号只是在末尾有一个额外的破折号和数字或字母,我使用了这个 where 子句:
where a.ProdNum REGEXP CONCAT('^', b.ProdNum, '(\-|\s)[a-zA-Z0-9]+')
现在 REGEXP 已经超出了我的想象。
旧产品编号:BRB-0325
新产品编号:0325-15(破折号后的数字可以是任意1位或2位数字)
所以基本上我需要一个 where 子句,它会从旧编号中删除“BRB-”,并在新项目编号之后删除任何 1 或 2 位数字。
我可以删除“BRB-”,但不知道如何处理1-2位数字,我真的不知道如何同时进行。
where b.ProdNum = CONCAT('BRB-', c.ProdNum)
这是我尝试使用 2 位数字的方法,但没有成功。
where c.ProdNum REGEXP CONCAT('^', b.ProdNum, '(\-)[0-9]{1,2}+')
感谢您的帮助。
【问题讨论】:
-
新数字应该从哪里来?
-
我把它编辑得更清楚了。