mysql - varchar 的自然排序

标签 mysql varchar

我有 3 列 varchar,我想按数字和字母顺序对它们进行排序。我想要自然排序,如 1、2、3 等,但我也希望 28A 之类的出现在 28 之后但在 29 之前。我尝试将其转换为有符号的 asc,这给了我自然排序,但也

28  1
28A 1
28  2
28A 2
28  3
28A 3
29

与我想要的相反

28  1
28  2
28  3
28A 1
28A 2
28A 3
29

感谢对此的任何帮助。

最佳答案

使用ORDER BY像这样

SELECT
 columna, columnb
FROM
  mytable
ORDER BY columna, columnb;

关于mysql - varchar 的自然排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22276941/

相关文章:

c# - 请求的操作需要 sql clr 上下文

php - MySQL UNION ALL 与 LEFT JOIN

java - 根据我的数据库 varchar 大小分割字符串(分成 block )

mysql - 在 MySQL 的 varchar 字段中搜索整数值

mysql - SQL如何确定varchar中字符的长度?

python - 使用 Django 将主键传递到下一页

接受参数中具有多个值的字符串的MySQL存储过程

mysql加载数据到文件系统锁定状态

php - SQL 查询不打印 varchar/text 列

php - 许多记录是 Varchar 还是 int?