2016-06-23 3 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 함수를 사용합니다.