首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何按任意关键字排序?

如何按任意关键字排序?
EN

Stack Overflow用户
提问于 2013-08-17 20:22:34
回答 2查看 55关注 0票数 3

我有以下查询:

代码语言:javascript
复制
SELECT 
        *
    FROM
        `Magic The Gathering`
    WHERE
        `set` =  'Magic 2013'
    ORDER BY
        `rarity` ASC
    LIMIT
        500

稀有性由以下关键词组成:神话、稀有、罕见、常见

目前,它按字母顺序排列,所以它被归类为普通的,神话的,稀有的,不常见的。

如何对稀有性进行排序,以便按以下顺序显示?

神秘的,罕见的,罕见的,普通的

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-17 20:29:04

您可以通过在字段()中使用MySQL函数来执行这个即席操作,该函数返回一个整数,该整数是列表中匹配字符串的位置。

示例:

代码语言:javascript
复制
SELECT 
    *
FROM
    `Magic The Gathering`
WHERE
    `set` =  'Magic 2013'
ORDER BY
    FIELD(`rarity`, 'Mythic', 'Rare', 'Uncommon', 'Common') ASC
LIMIT
    500

注后勾引号用于列标识符,而直单引号用于字符串文本.

另一种解决方案是将rarity列定义为ENUM('Mythic', 'Rare', 'Uncommon', 'Common'),然后可以使用原始查询。排序顺序将根据字符串在枚举中的序号位置,而不是字母顺序。

票数 1
EN

Stack Overflow用户

发布于 2013-08-17 20:24:48

就这么简单:

代码语言:javascript
复制
SELECT 
    *
FROM
    `Magic The Gathering`
WHERE
    `set` =  'Magic 2013'
ORDER BY
    FIELD(`rarity`, 'Mythic', 'Rare', 'Uncoomon', 'Common') ASC
LIMIT
    500
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18292971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档