如何更新 MySql table 中编码错误的字符?
How to update badly encoded characters in MySql table?
在现有数据库中,我们发现了一些文本条目中的重音字符编码错误。
以下查询:
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 )
returns 两行描述问题:
有时,带重音的e被正确插入,有时却没有。
我如何使用 UPDATE ... WHERE ... 检测和更新此类问题?或者我应该使用不同的 statement/method?
P.S.:对应的应用在PHP.
开发
P.S.2: 建议的可能重复问题中的答案没有解决我提出的问题。与数据库排序无关
您可以简单地检测所有您想要更正的事件并使用简单的更新子句进行替换。
您描述的案例示例:
UPDATE Product
SET Name = REPLACE(Name, 'é', 'é')
WHERE Name like '%é%'
您可以 运行 使用命令行或在特定 mysql 用户界面客户端应用程序中直接在 mysql 数据库中更新。或者,如果您愿意,可以使用 php 函数在数据库中 运行 sql 语句。
在现有数据库中,我们发现了一些文本条目中的重音字符编码错误。
以下查询:
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 )
returns 两行描述问题:
有时,带重音的e被正确插入,有时却没有。
我如何使用 UPDATE ... WHERE ... 检测和更新此类问题?或者我应该使用不同的 statement/method?
P.S.:对应的应用在PHP.
开发P.S.2: 建议的可能重复问题中的答案没有解决我提出的问题。与数据库排序无关
您可以简单地检测所有您想要更正的事件并使用简单的更新子句进行替换。
您描述的案例示例:
UPDATE Product
SET Name = REPLACE(Name, 'é', 'é')
WHERE Name like '%é%'
您可以 运行 使用命令行或在特定 mysql 用户界面客户端应用程序中直接在 mysql 数据库中更新。或者,如果您愿意,可以使用 php 函数在数据库中 运行 sql 语句。