mysql 字母和符号排序顺序

图片说明

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

附上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

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

直接搬运:

https://blog.csdn.net/u010046908/article/details/79611701

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