【问题标题】:Normalizing a field using a single UPDATE in MySQL在 MySQL 中使用单个 UPDATE 规范化字段
【发布时间】:2012-04-07 04:37:54
【问题描述】:

有没有办法使用单个查询执行更新以规范化字段?

例子:

UPDATE person SET name = REPLACE(name, 'á', 'a');
UPDATE person SET name = REPLACE(name, 'é', 'e');
UPDATE person SET name = REPLACE(name, 'í', 'i');
UPDATE person SET name = REPLACE(name, 'ó', 'o');
UPDATE person SET name = REPLACE(name, 'ú', 'u');

【问题讨论】:

标签: mysql replace normalization canonicalization


【解决方案1】:

您可以链接替换调用,因此可以在单个查询中完成:

UPDATE person SET name = REPLACE(REPLACE(REPLACE(name, 'á', 'a'), 'é', 'e'), 'í', 'i')

但这很快就变成了无法维护的混乱局面。如果您只是想用不带重音的等价物替换带重音的字符,那么更改字符集可能会更有用。

【讨论】:

    【解决方案2】:

    如果你想替换所有的字母,像这样替换你们都在谈论会变得一团糟。 您可以制作一个包含两列的表格,例如第一列包含“á”,第二列同样包含“a”。 然后创建一个过程来获取新表的每一行,然后完成替换。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-21
      • 2018-06-06
      • 1970-01-01
      • 2012-04-19
      • 1970-01-01
      • 1970-01-01
      • 2014-11-01
      相关资源
      最近更新 更多