CONVERT功能无法正常工作
问题描述:
在我的localhost
我有Mysql 5.7,在我的服务器上有MariaDB 10.2.7。CONVERT功能无法正常工作
我有一些json
领域,我想我的记录在json
值的领域之一,我在谷歌和计算器搜索,所以我用这个查询排序:
SELECT id , CONVERT(JSON_EXTRACT(name, '$."fa-IR"') USING utf8) COLLATE utf8_persian_ci AS cName FROM `users` ORDER BY cName ASC
样本数据:
id | Name
-----+-------------------
1 | {"fa-IR":"\u062a\u0633\u062a","en-US":"Test"}
这个函数在我的本地主机(MySQL)中没有任何问题,但在服务器(MariaDB)中无法正常工作我的意思是我的记录无法正确排序并显示分解!
答
不要将Unicode提供给MySQL。特别是不与\u
。
在客户端使用UTF-8编码,然后配置MySQL使用utf8
(或utf8mb4
)。
请参阅“最佳实践”http://*.com/questions/38363566/trouble-with-utf8-characters-what-i-see-is-not-what-i-stored
“不工作”是指什么? – tadman
@tadman记录无法正确排序,例如,如果记录应按MariaDB中的A,B,C,D ......排序,就像这样C,D,B,A(但不是随机的,每次运行此查询返回相同的结果) – MajAfy
您是否探究过MySQL和MariaDB如何处理这些独立于JSON的值? – tadman