开发者社区> 问答> 正文

mysql数据库中ordery by if语句查询

假设表_table有4个字段
select * from _table as t order by if(t.id='1',3,1) desc这样的查询结果和
select * from _table as t order by if(t.id='1',3,10) desc这样的查询结果不一样,
想不明白order by 后面有if后查询和直接写字段名或字段列数不一样

展开
收起
落地花开啦 2016-02-12 18:02:32 2920 0
1 条回答
写回答
取消 提交回答
  • if 的条件中筛选出id='1'的来进行排序,后面3,1 |3,10的含义为,先优先级判断t.id是否为1,如果id='1',那么那么返回3,否则,就返回1,第二个语句是如果id='1',那么返回3,否则返回10,所以两次的排序结果是不一样的

    2019-07-17 18:41:38
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载
云时代的数据库技术趋势 立即下载
超大型金融机构国产数据库全面迁移成功实践 立即下载

相关镜像