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)中无法正常工作我的意思是我的记录无法正确排序并显示分解!

+1

“不工作”是指什么? – tadman

+0

@tadman记录无法正确排序,例如,如果记录应按MariaDB中的A,B,C,D ......排序,就像这样C,D,B,A(但不是随机的,每次运行此查询返回相同的结果) – MajAfy

+0

您是否探究过MySQL和MariaDB如何处理这些独立于JSON的值? – tadman

不要将Unicode提供给MySQL。特别是不与\u

在客户端使用UTF-8编码,然后配置MySQL使用utf8(或utf8mb4)。

请参阅“最佳实践”http://*.com/questions/38363566/trouble-with-utf8-characters-what-i-see-is-not-what-i-stored