Mysql按JSON串中一個數值進行排序


如果使用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)

結果就是我們數學意義上的排序了:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM