第二行的Mysql表id 10

时间:2016-08-05 02:29:17

标签: mysql-workbench

我已经创建了一个MySql表。但如果我将数据插入表中,我会遇到问题。

我的表格行看起来像这样

ID       name
RS1      a
RS10     j
RS2      b
RS3      c
RS4      d
RS5      e
RS6      f
RS7      g
RS8      h
RS9      i

为什么在第二行添加ID no.10? 我使用MySQL Workbench来创建表,任何人都知道如何解决它?

2 个答案:

答案 0 :(得分:1)

我推测你正在查询表格:

select t.*
from t
order by id;

按{em>字母顺序排序id,而不是数字排序。因为" 1" < " 2"," 10"出现在" 2"。

之前

以下是解决此问题的一种简单方法:

select t.*
from t
order by length(id), id;

还有其他方法,例如:

order by substr(id, 3) + 0

这会将从第三个字符开始的所有内容转换为一个更适合排序的数字。

答案 1 :(得分:0)

它由Workbench按字符串排序。

除非必须在字符串值前加上id,否则如果您关注查看顺序,我建议您使用自动增量字段。如果它是一个数字(自动增量),这将不是一个问题。

如果您想按时间顺序排序,还可以考虑使用createdcreated_at DateTime字段。

我的猜测是你在Windows操作系统上,我经常遇到这个字符串排序不符合预期的问题。