MySQL自定义查找数据的显示顺序

今天遇到一个行政区域显示的问题,就是在查询行政区域时,查询出来的内容,是按照插入数据的时间进行的,但我常用的四川省,我希望在最前面,方便我第一时间看到,但是无论通过名称或者序号排序都无法实现。

查询语句及结果

SELECT region_id, region_name
FROM area_4
WHERE parent_id = 0

 所以就用到了CASE END条件表达式,根据条件对结果进行判断和返回不同的值,然后进行自定义顺序

SELECT region_id, region_name
FROM area_4
WHERE parent_id = 0
ORDER BY
  CASE 
    WHEN region_name = '四川省' THEN 0 
    WHEN region_name = '成都市' THEN 1 
		WHEN region_name = '自贡市' THEN 2
		WHEN region_name = '简阳市' THEN 3
		WHEN region_name = '贡井区' THEN 4
		WHEN region_name = '大安区' THEN 5   
		ELSE 6 
  END;

这样在查询省时,会将四川省放前面

 查找市时,会将成都市放前面,泸州市放后面

查询县或者区时,会将泸金牛区放前面,其次是简阳市 ,最后是武侯区

这样SQL在查询中ORDER BY子句会配合CASE表达式用于对结果进行排序。根据给定的条件,它会为每一行赋予一个排序值,然后按照这个排序值进行排序。

在这个例子中,根据region_name的不同取值,使用CASE表达式为每一行分配一个排序值。如果region_name等于'四川省',则排序值为0;如果region_name等于'成都市',则排序值为1;如果region_name等于'泸州市',则排序值为2;以此类推。如果region_name不满足以上任何条件,则排序值为6。

最后,ORDER BY子句会根据这个排序值对结果进行排序。排序值较小的行会在排序结果中靠前,排序值较大的行会在排序结果中靠后。这样可以按照指定的顺序对结果进行排序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值