mysql如何按照 in 里面的顺序显示

今天需要实现一个需求是根据sku批量匹配产品类型,sql语句如下

select product.sku,(select name from product_category where code=product.category) as '产品类别' from product where sku in (
'EY-0393BK',
'EY-A000577',
'EY-A000235'
) 

显示结果如下
在这里插入图片描述
乍一看,想要的结果已经实现了,但是,有一个问题,就是显示结果没有按照我的 in 查询里面的顺序显示。
那为啥要按照我的in查询里面的结果显示呢?这是因为我的in里面的sku都是直接从excel中拿出来的,也就是这些sku在excel中的顺序已经固定了,我查询出来产品类型之后,是要直接复制到对应的excel中的产品类型列。
如果你对我为啥要按照 in 里面顺序显示疑惑,就不用管了,反正你知道,这篇博客是讲述如何让显示结果按照in里面的顺序显示的,就行了
如果我们想要显示结果按照我们的in里面顺序排序,需要用到一个mysql中的field函数,这个函数可以实现我们让结果集按照指定顺序排序。
修改的sql语句如下

select product.sku,(select name from product_category where code=product.category) as '产品类别' from product where sku in (
'EY-0393BK',
'EY-A000577',
'EY-A000235'
) 
order by field(sku,
'EY-0393BK',
'EY-A000577',
'EY-A000235'
)

修改之后的sql语句的执行局结果如下
在这里插入图片描述
这时候,我们就会看到,显示的结果集已经按照我们的in查询里面的顺序排序了。

我的微信号: xiang20200106 ,欢迎大家找我聊天

— 【 THE END 】—

在这里插入图片描述

本公众号已经整理一套包含前端和后端的全套电子书教程,限时免费赠送,请在公众号里回复「电子书」获取!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

playboy-jordan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值