SQL 中case when ...then...else ...end用法之列表排序

1、需求:有一个商品列表,用户购买商品会生成购买记录,根据用户购买的商品记录进行排序,买过的商品排序在商品的最下方,需要实现分页。

SELECT `goodsid`,CASE WHEN `goodsid` IN (1,2) THEN 1 ELSE 0 END `num` FROM `goods` ORDER BY `num`

语句解释:查询商品id case when 商品id  in (id)如果在 就是 1 否则就是 0 正序排序

使用:

SELECT id,CASE WHEN `id` IN (select prod_id from sh_member_prod_log where user_id = 1 group by prod_id) THEN 1 ELSE 0 END `num` FROM `sh_prod` ORDER BY `num` limit 0,10;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值