mysql 查询 unicode_MySQL:查询unicode实体

本文探讨了在数据库中查询包含特殊字符的字符串时遇到的问题。通过具体案例分析,发现反斜杠可能干扰了查询过程,导致无法正确匹配目标数据。

我需要从数据库中找到单词 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

我添加了一些换行符以提高可读性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值