sinat_37897528
sinat_37897528
采纳率100%
2019-04-24 16:14

mysql 字母和符号排序顺序

5
已采纳

图片说明

做了一个 获取首字母并且根据首字母排序的查询,其中有些不符合条件的,就用作#代替,
但在排序的时候 ,#排在了字母的前面 ,有没有什么方法,让#排在后面,并且字母还是按顺序排序

附上sql:

SELECT
id AS id,
NAME_SCN,
CODE,
CASE (
LEFT (CODE, 1) REGEXP ('^[A-Z]')
)
WHEN '1' THEN
LEFT (CODE, 1)
ELSE
'#'
END AS firstLetter
FROM
b_shipping
WHERE
REMOVE = 0
ORDER BY
firstLetter ASC

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • a718089112 a718089112 2年前

    增加一个字段 字母值为1 #号值为2 排序的时候 用2个字段进行组合排序

    点赞 评论 复制链接分享
  • xiaobai1024 笨鸟一个 2年前

    给你个简单的,把order by 后边的换成我这个就解决了,ORDER BY (firstLetter REGEXP '^[A-Z]') DESC,firstLetter asc。用正则判断,先判断是否是字母,是的换返回1,那#返回0,#号肯定排在最后,那剩下的在根据字母正序排列。因为默认是按ascll码排列的,你#号肯定排前面,所以这个方法就先把#扔后边,再排别的

    点赞 评论 复制链接分享
  • FeiRouBing FeiRouBing 2年前
    点赞 评论 复制链接分享