我有20个表,每个表都有20列。所有列的类型均为varchar。我想在MySQL中使用replace()trim()。像这样:

UPDATE table1 SET col1 = TRIM(REPLACE(`col1`, 'x', 'y' ));


现在,我正在寻找一种通用的方法。实际上,我无法对所有表和列使用上述查询(20 * 20 = 400次)。是否可以将上述查询扩展为所有表和列?

换句话说,如何使用*将所有列选择到trim()replace()中?

最佳答案

这是一个开始。 MySQL不是我的专长,但总体思路应该可行。

select
    concat(
        'update ', table_name, ' set ',
        group_concat(
            concat( column_name, ' = trim(replace(', column_name, ', ''x'', ''y''))' )
        )
    )
from information_schema.columns
group by table_name

关于mysql - 如何针对多个表和列扩展使用trim()和replace(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31028533/

10-12 17:37