如果使用JSON_EXTRACT函数提取JSON中的“fansCount”字段的数值并升序的话是有问题的,
SELECT JSON_UNQUOTE(JSON_EXTRACT(actor_data, "$.fansCount")) AS "粉丝数" FROM kol_prices ORDER BY JSON_UNQUOTE(JSON_EXTRACT(actor_data, "$.fansCount"))
排序的结果并不是按照我们数字的大小进行升序的
不难可以看出它的升序是按照位数从左到右进行排序的,这样和我们日常的理解有所偏差,这时候可以使用CAST函数转换成我们想要的方式排序,SQL如下:
SELECT JSON_UNQUOTE(JSON_EXTRACT(actor_data, "$.fansCount")) AS "粉丝数" FROM kol_prices ORDER BY CAST(JSON_UNQUOTE(JSON_EXTRACT(actor_data, "$.fansCount")) AS INT)
结果就是我们数学意义上的排序了: