mysql-order列按ascii值排序

unguejic  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(579)

我有一个包含文本的列,按ascii排序,其顺序如下:

-  (hyphen)
0
1  (numbers)
2
A  (uppercase)
B
_  (underscore)
a
b  (lowercase)
c

但其订购方式如下:

-  (hyphen)
0
1  (numbers)
2
a
b  (lowercase)
c
A
B  (uppercase)
C
_  (underscore)

如何按ascii值排序?

x3naxklr

x3naxklr1#

您可以使用ascii:

SELECT *
FROM tab
ORDER BY ASCII(col_name) ASC
iq0todco

iq0todco2#

排序顺序由排序规则控制。您可以使用二进制排序规则按原始字节排序,对于ascii数据,这将导致它按ascii值排序。看到了吗https://dev.mysql.com/doc/refman/5.7/en/sorting-rows.html

SELECT ...
FROM mytable
ORDER BY BINARY mycolumn

这将比使用 ASCII() 函数,因为该函数只返回第一个字符的ascii值。使用二进制排序允许按完整字符串排序。

相关问题