我有一列文本,按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值进行排序?
我有一列文本,按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值进行排序?
排序顺序由排序规则控制。您可以使用BINARY排序规则按原始字节排序,在ASCII数据的情况下,将根据ASCII值进行排序。请参见https://dev.mysql.com/doc/refman/5.7/en/sorting-rows.html
SELECT ...
FROM mytable
ORDER BY BINARY mycolumn
使用BINARY排序规则比使用ASCII()
函数更加灵活,因为该函数仅返回第一个字符的ASCII值。使用BINARY排序规则可以对整个字符串进行排序。
您可以使用ASCII:
SELECT *
FROM tab
ORDER BY ASCII(col_name) ASC
order by Upper(column)
或order by lower(column)
。 - xQbert