데이터베이스에서 Lämmönmyyntipalvelut이라는 단어를 찾아야합니다. 오직 데이터베이스에서 값이 PHP 배열로 된 필드에 json_encode()를 사용하여 JSON으로 변환되므로 특수 문자가 16 진수 유니 코드로 검색됩니다.MySQL : 유니 코드 엔터티 쿼리
그래서 내 쿼리는
SELECT * FROM table WHERE (services LIKE '%Lämmönmyyntipalvelut%')
결과가 없습니다. 놀랄 일이 아닙니다.
SELECT * FROM table WHERE (services LIKE '%L\u00e4mm\u00f6nmyyntipalvelut%')
검색 결과와 그 이유를 궁금해 : 다음, 특수 문자 쿼리가 변환되지 않습니다. 다음으로 특수 문자 만 쿼리를 테스트했습니다.
SELECT * FROM table WHERE (services LIKE '%\u00e4%')
발견 된 항목을 찾았습니다. 다음으로 나는 물건을 추가하기 시작했다. (처음부터 끝까지) 그것이 잘못되었는지보기 시작했다 :
SELECT * FROM table WHERE (services LIKE '%L\u00e4%')
결과가 없다. 다른 시험 :
SELECT * FROM table WHERE (services LIKE '%\u00e4mm%')
발견 된 물건.
내 결론은 백 슬래시가 어떻게 든 엉망으로 만든다는 것이지만 어떻게 이해할 수 있습니까?
편집 : 서비스 분야의
정확한 내용 :
["Neuvonta","L\u00e4mm\u00f6nmyyntipalvelut",
"Mets\u00e4-\/energiapuunkorjuupalvelut"]
정확한 쿼리
SELECT id, uid, company_name, services, logo FROM rekisteroeidy_toimijaks
WHERE
(services LIKE '%L\u00e4mm\u00f6nmyyntipalvelut%' AND
services LIKE '%Mets\u00e4-\/energiapuunkorjuupalvelut%')
ORDER BY company_name ASC
내가 어떤 라인은 가독성을 돕기 위해 중단했다.
'json_encode()'결과를 보여줍니다. –
서비스 필드의 내용을 의미합니까? –
예, 누군가 문제가있는 곳에서 볼 수 있습니다. –