是否有更有效的方法在多列中使用REGEXP?

时间:2015-05-26 20:26:56

标签: mysql regex simplify mysql-5.6

在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等,是公平的游戏)。我非常希望听到任何基于程序或常规的解决方案,但它们最终不是最理想的。

0 个答案:

没有答案