MYSQL更改多个列

时间:2012-09-03 13:17:41

标签: mysql sql-update

我得到了这张桌子:

APPLICATION     TEST    DESCRIPTION     FICHIERCONF     FICHIERXML  FICHIERPROXY    PORTAIL     PERIODEMAINTENANCE  NOMDNS  TPSWARN     TPSCRIT     TYPEMAJ     TYPERAPPORT     CONTREMESURE    TPSCONTREMESURE     AUTH_URL    APP_URL_ENC
cerbere     Application-Ping    test    cete-config-cerbere     cerbere.xml     config-no-proxy.xml     0       cerbere.application.i2  0   0   1   Nagios  1   30  NULL    NULL
cerbere     Application-Ping2   test    cete-config-cerbere     cerbere.xml     config-no-proxy.xml     0       cerbere.application.i2  0   0   1   Nagios  1   30  NULL    NULL

对于1个单行我想在每次用另一个文本看到的时候改变'cerbere',在所有列中。

例如,我说:在'lidia'的第一行改变'cerbere'。我希望我的应用程序字段由'lidia'更改,fichierconf字段由'cete-config-lidia'更改,fichierxml由lidia.xml更改,nomdns由'lidia.application.i2'更改。

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:5)

您需要使用更新表语法。

update 
TABLE_NAME 
set 
FIELD_NAME = replace(FIELD_NAME, 'find this string', 'replace found string with this string')
, ANOTHER_FIELD_NAME = REPLACE(ANOTHER_FIELD_NAME, 'foo', 'bar')
, AND_ANOTHER_ANOTHER_FIELD_NAME = REPLACE(...)
... /*as much columns as you like*/
;

你可以为每一列做这个,虽然可能还有一个更好的解决方案,这个快速而肮脏的黑客应该让你开始。