我需要从数据库中找到单词 Lämmönmyyntipalvelut
。只是,在数据库中,它位于字段中,其值一直是一个PHP数组,并使用json_encode()转换为JSON,因此特殊字符被乱写为十六进制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
我添加了一些换行符以提高可读性。
本文探讨了在数据库中查询包含特殊字符的字符串时遇到的问题。通过具体案例分析,发现反斜杠可能干扰了查询过程,导致无法正确匹配目标数据。
572

被折叠的 条评论
为什么被折叠?



