mysql按带有数组键的字符串排序[重复]

Posted

技术标签:

【中文标题】mysql按带有数组键的字符串排序[重复]【英文标题】:mysql order by string with array key [duplicate] 【发布时间】:2018-04-20 13:31:01 【问题描述】:

我想在 mysql 搜索中订购联赛(英雄联盟)。

我的数组:

$leagues = array(0 => 'unranked', 1 => 'bronze', 2 => 'silver', 
                 3 => 'gold', 4 => 'platin', 5 => 'diamond');

我的 MySQL 查询:

SELECT * FROM accounts order by league

它按字母顺序排序,但我需要按数组键排序(钻石>铂金>金>银>青铜>未排序)

如何使用数组键做到这一点?

【问题讨论】:

【参考方案1】:

要小心,因为菱形、铂金等不是键,而是数组值。

考虑到您的帐户表中的联赛列具有数值(0 到 5),请尝试在您的查询中添加“DESC”:

SELECT * FROM accounts order by league DESC

如果您的帐户表中的联赛列包含文本值(钻石、白金、金、银、铜和未排名),您的查询应该是这样的:

SELECT * FROM accounts ORDER BY FIELD(league, "diamond", "platin", "gold", "silver", "bronze", "unranked")

【讨论】:

是的,如果他有一个league(文本)字段,这将起作用。但考虑到他试图使用数组来映射它,它看起来可能是 ID (0,1,2,3,4,5)。 谢谢,它解决了我的问题!

以上是关于mysql按带有数组键的字符串排序[重复]的主要内容,如果未能解决你的问题,请参考以下文章

按特定键的内部数组的值对PHP二维数组进行排序[重复]

按字符串内的数字对数组进行排序[重复]

带有向量作为键的 STL 映射

对带有异常的字符串数组进行排序 Swift

带有带有整数键的dict的python字符串格式()[重复]

带有多个属性的对象的打字稿排序数组