データベースからLämmönmyyntipalvelutという単語を見つける必要があります。唯一、データベースでは、値がPHP配列であるフィールドにあり、json_encode()を使用してJSONに変換されるため、特殊文字は16進Unicodeにスクラブされます。
だから私のクエリは
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%')
見つけることになっていたものを見つけました。次に、どこで問題が発生したかを確認するために、ものを追加し始めました(最初にL)。
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
読みやすくするために改行をいくつか追加しました。