原始顺序需要MySQL FIND_IN_SET搜索结果

问题描述 投票:0回答:1

我正在MySQL中使用FIND_IN_SET,如下所示:

SELECT  
        color, b.id
FROM    cards b
        where FIND_IN_SET(b.color, 'gold,gold,bronze,silver,silver') > 0
GROUP   BY b.id
        ORDER BY RAND() 
        limit 5;

我得到如下输出:

enter image description here

但是,我想以与提供给FIND_IN_SET的参数字符串相同的顺序获得卡片,>]

gold, gold, bronze, silver, silver

因此,第一输出行应该是金色,然后是另一个金色,然后是古铜色,依此类推-以相同的顺序进行,没有任何随机搜索。

我无法进行自我加入,因为这是一张大桌子。请帮助。

我正在MySQL中使用FIND_IN_SET,如下所示:选择颜色,b.id来自卡片b,其中FIND_IN_SET(b.color,'gold,gold,bronze,silver,silver')> 0 GROUP BY b.id ORDER BY .. 。

mysql comma find-in-set
1个回答
1
投票

[您将需要使用3个查询的UNION来执行此操作,以查找随机的“金”,“银”和“青铜”奖牌列表,然后使用FIELD排序这些结果:

© www.soinside.com 2019 - 2024. All rights reserved.