mysql指定某行或者某列的排序

mysql指定某行或者某列的排序

 

方法:

通过desc:

 

都无法实现:

方法一:

1
2
3
4
5
select sp.productid,sp.productname,ss.sku from sp_product sp inner join sku_skus ss on sp.productid=ss.productid 
where sp.productname= '力士恒久嫩肤娇肤香皂115g'
or sp.productname= '佳洁士(Crest) 绿茶薄荷牙膏180克'
or sp.productname= '心味果园 兰花豆 190g/袋 1袋 炒货豆制品休闲零食'  order by (
case  when sp.productid= 11042723  then  1  ELSE  2  END)

 

方法二:

1
2
3
4
select sp.productid,sp.productname,ss.sku from sp_product sp inner join sku_skus ss on sp.productid=ss.productid 
where sp.productname= '力士恒久嫩肤娇肤香皂115g'
or sp.productname= '佳洁士(Crest) 绿茶薄荷牙膏180克'
or sp.productname= '心味果园 兰花豆 190g/袋 1袋 炒货豆制品休闲零食'  ORDER BY sp.productid not in( 11042723 )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Mysql:把指定数据行排在前面
 
如果只是一条数据行,可以这样:
 
SELECT * FROM user ORDER BY user_id<> 7 ,score DESC;    
主要是“user_id<> 7 ”,就会把用户id为 7 的排在前面。
 
如果是多条数据行:
SELECT * FROM user ORDER BY user_id NOT IN( 7 , 8 , 9 ),score DESC; 
 
 
 
mysql 某列指定值靠前排序 
 
单个列靠前排序:
mysql 某列指定值靠前排序  order by  case
 
SELECT * FROM `jcxsw`.`t_company_product` order by (
case  when id= 263  then  1  ELSE  4  END),category_id desc;
这段sql代码 会先排列id = 263 的额数据 然后 根据category_id倒叙
 
多个列靠前排序:
 
SELECT * FROM `web_membersfastsort_women` m  order by  
m.province<> '10106000'  , m.city<> '10106001'  ,m.city desc,m.province 
desc,m.s_cid asc, m.images_ischeck desc,m.pic_num desc limit  2000 , 30
 
province = 10106000  的 靠前排,在province =  10106000  中   city= 10106001  的靠前排


若将某行排在最后,将上面的<>换成=即可
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值