2016-06-23 26 views
1

在現有的數據庫中,我們發現了一些文字條目,其中帶有重音的字符被嚴重編碼。如何更新MySql表中嚴重編碼的字符?

下面的查詢:

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) 

回報兩行描述了這個問題:

enter image description here

有時,電子口音已經正確地插入,有時沒有。

如何檢測並更新這種問題與更新...在哪裏......?或者我應該使用不同的陳述/方法?

計算:相應的應用程序是在PHP中開發的。

P.S.2:建議的可能重複問題中的答案沒有解決我提出的問題。它與數據庫的整理無關。

+0

可能重複[如何處理數據庫中的口音和奇怪的字符?](http://stackoverflow.com/questions/33219970/how-to-deal-with-accents-and-strange-characters-in -a-database) –

+0

您應該首先解決插入問題,請參閱http://stackoverflow.com/questions/279170/utf-8-all-the-way-through – jeroen

回答

1

您可以簡單地檢測到您想糾正的所有事件,並使用簡單的更新子句進行替換。

實例爲您所描述的情況:

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

您可以運行此直接更新MySQL數據庫,使用命令行或在特定的MySQL用戶界面客戶端應用程序。或者如果你喜歡,使用在數據庫中運行sql語句的php函數。