【问题标题】:mysql order by string with array key [duplicate]mysql按带有数组键的字符串排序[重复]
【发布时间】: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

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

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

【问题讨论】:

    标签: php mysql arrays


    【解决方案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)。
    • 谢谢,它解决了我的问题!
    猜你喜欢
    • 2014-04-16
    • 2012-08-19
    • 2019-12-13
    • 2023-02-06
    • 1970-01-01
    • 2017-06-03
    • 2021-07-05
    • 2017-07-25
    • 2018-01-21
    相关资源
    最近更新 更多