我有一个包含文本的列,按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值排序?
x3naxklr1#
您可以使用ascii:
SELECT * FROM tab ORDER BY ASCII(col_name) ASC
iq0todco2#
排序顺序由排序规则控制。您可以使用二进制排序规则按原始字节排序,对于ascii数据,这将导致它按ascii值排序。看到了吗https://dev.mysql.com/doc/refman/5.7/en/sorting-rows.html
SELECT ... FROM mytable ORDER BY BINARY mycolumn
这将比使用 ASCII() 函数,因为该函数只返回第一个字符的ascii值。使用二进制排序允许按完整字符串排序。
ASCII()
2条答案
按热度按时间x3naxklr1#
您可以使用ascii:
iq0todco2#
排序顺序由排序规则控制。您可以使用二进制排序规则按原始字节排序,对于ascii数据,这将导致它按ascii值排序。看到了吗https://dev.mysql.com/doc/refman/5.7/en/sorting-rows.html
这将比使用
ASCII()
函数,因为该函数只返回第一个字符的ascii值。使用二进制排序允许按完整字符串排序。