在MySQL 5.6数据库中,我试图编写一个脚本,用于查找和删除每个字段末尾的杂散标点符号(单独的空格,单独的逗号等)。目前,我有这样的事情:
UPDATE exampletable
SET Column1=TRIM(BOTH ',' FROM TRIM(BOTH ' ' FROM Column1)),
Column2=TRIM(BOTH ',' FROM TRIM(BOTH ' ' FROM Column2)),
Column3=TRIM(BOTH ',' FROM TRIM(BOTH ' ' FROM Column3)),
Column4=TRIM(BOTH ',' FROM TRIM(BOTH ' ' FROM Column4))
WHERE Column1 REGEXP " $|,$"
OR Column2 REGEXP " $|,$"
OR Column3 REGEXP " $|,$"
OR Column4 REGEXP " $|,$"
......效果不错。但是,我想编写一个检查更多列的版本,并且考虑到我在每个列上运行完全相同的搜索,找到更优雅的方法会很棒而不只是粘贴在相同的正则三十或四十次。 (也许是MATCH?这与正则表达式兼容吗?)
有没有什么好方法可以简化这段代码?不幸的是,鉴于相当专业的平台的性质,最好的解决方案必须适合单个查询(虽然UNION等,是公平的游戏)。我非常希望听到任何基于程序或常规的解决方案,但它们最终不是最理想的。