如何在REPLACE()函数中使用数组?

时间:2015-11-16 14:24:59

标签: mysql sql replace

我有一些我想用其他角色替换它们的角色。

  • - => *
  • / => .
  • < =&gt; {
  • > =&gt; }

此处还有一个表中记录的示例:(数据库)

+-------------------+
| - it <is> a test/ |
+-------------------+

我想要输出

+-------------------+
| * it {is} a test. |
+-------------------+

好吧,我可以使用4个单独的更新查询来做到这一点:(通过一个接一个地执行它们)

UPDATE table SET `col` = REPLACE(`col`, '-', '*' );
UPDATE table SET `col` = REPLACE(`col`, '/', '.' );
UPDATE table SET `col` = REPLACE(`col`, '<', '{' );
UPDATE table SET `col` = REPLACE(`col`, '>', '}' );

现在我想知道,有没有更短的解决方案? (因为实际上有超过12个用于替换的情况)。例如,是否可以在数组中编写所有这些符号然后将该数组放入update查询中只是一次?

1 个答案:

答案 0 :(得分:4)

UPDATE table 
SET `col` = REPLACE(REPLACE(REPLACE(REPLACE(`col`, 
                                                         '>', 
                                                         '}' ), 
                                                 '<', 
                                                 '{' ), 
                                         '/', 
                                         '.' ), 
                                 '-', 
                                 '*' );

postgresql翻译有一个功能就是这样做。 http://www.postgresql.org/docs/9.1/static/functions-string.html

在这里,我找到了一个复制该函数的存储过程,(注释是西班牙文)。

http://www.forosdelweb.com/f86/funcion-translate-mysql-704190/