mysql-order列按ascii值排序

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

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

  1. - (hyphen)
  2. 0
  3. 1 (numbers)
  4. 2
  5. A (uppercase)
  6. B
  7. _ (underscore)
  8. a
  9. b (lowercase)
  10. c

但其订购方式如下:

  1. - (hyphen)
  2. 0
  3. 1 (numbers)
  4. 2
  5. a
  6. b (lowercase)
  7. c
  8. A
  9. B (uppercase)
  10. C
  11. _ (underscore)

如何按ascii值排序?

x3naxklr

x3naxklr1#

您可以使用ascii:

  1. SELECT *
  2. FROM tab
  3. ORDER BY ASCII(col_name) ASC
iq0todco

iq0todco2#

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

  1. SELECT ...
  2. FROM mytable
  3. ORDER BY BINARY mycolumn

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

相关问题