【问题标题】:How to update badly encoded characters in MySql table?如何更新 MySql 表中编码错误的字符?
【发布时间】:2016-10-25 13:12:12
【问题描述】:

在现有数据库中,我们发现了一些文本条目,其中带有重音的字符编码错误。

以下查询:

SELECT 
    PR.Product_Ref__ AS ProductCode,
    CONCAT(P.Name, IF (PR.Misc <> '', CONCAT(' ', PR.Misc), '')) AS Name
FROM
    Product AS P
        INNER JOIN
    Product_Ref AS PR ON P.Product__ = PR.Product__
WHERE
    Name like "%é%" AND
    PR.Product_Ref__ IN ( 659491, 657274 )

返回两行描述问题:

有时,带重音的 e 已正确插入,有时则没有。

如何使用 UPDATE ... WHERE ... 检测和更新此类问题?还是应该使用不同的语句/方法?

P.S.:对应的应用是用PHP开发的。

P.S.2:建议的可能重复问题中的答案并未解决我提出的问题。与数据库的排序无关。

【问题讨论】:

标签: php mysql non-ascii-characters


【解决方案1】:

您只需检测所有要更正的事件并使用简单的更新子句进行替换。

您描述的案例示例:

UPDATE Product
SET Name = REPLACE(Name, 'é', 'é')
WHERE Name like '%é%'

您可以使用命令行或在特定的 mysql 用户界面客户端应用程序中直接在 mysql 数据库中运行此更新。或者,如果您愿意,可以使用在数据库中运行 sql 语句的 php 函数。

【讨论】:

    猜你喜欢
    • 2014-08-13
    • 2015-09-08
    • 1970-01-01
    • 2011-03-01
    • 2015-03-01
    • 1970-01-01
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多