此问题在此处已有答案:
MySQL - ORDER BY values within IN()(6个答案)
昨天关门了。
是否可以按照数组提供的自定义顺序对MySQL结果或Laravel Collection进行排序?
例如,假设您希望按位置对事件列表进行排序,用户告诉您他们在西班牙,而您有几个其他事件发生在世界其他国家。
您希望对事件进行大致排序以适合其位置:首先是西班牙,然后是葡萄牙、法国、意大利、英国、德国等。
因此,您有一个针对西班牙语用户的数组:[Spain, Portugal, France, Italy, UK, Germany]
,并且数据库中每个事件旁边都有一列与这些国家/地区值匹配。
您能对结果进行排序,使其符合此顺序吗?
1条答案
按热度按时间gfttwv5a1#
正如user1844933注解掉的那样,要在MySQL中实现自定义排序顺序,需要使用ORDER BY FIELD()。
因此,您的结果查询如下所示: