如果使用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)
結果就是我們數學意義上的排序了: