这是mysql中的一个表,010预计将是表中的最后一个。我该如何处理?数据库会自动对输入的值
进行排序答案 0 :(得分:0)
数据库表是未排序的集合,没有内在的顺序。如果您想按特定顺序获取行,则必须使用order by
子句明确指定行:
SELECT *
FROM mytable
ORDER BY CAST(visitorsid AS INTEGER)
答案 1 :(得分:0)
您可以按字符长度的长度指定字符字段的顺序,而不是标准的整理顺序。
SELECT * FROM MY_TABLE ORDER BY LENGTH(visitorid);
我应该通过前导0加上我假设这不是数字字段。
答案 2 :(得分:0)
您要求的基本上是“显示输入序列中的行”,严格来说,这在SQL中是未定义的。
我通常对我的表做的是添加一个ID列,如:
create table foo (id int not null primary key auto_increment, ...rest of columns...)
这样,行可以按输入顺序排序。它也不一定是主键 - 任何auto_increment列都可以工作。 (auto_increment是一个MySqlism,顺便说一下,其他RDBMSes还有其他基本相同的语法)。
BTW,严格来说,你的专栏正确排序 - 看起来像是char或varchar列,因此它按字典顺序而不是数字排序。如果您希望移植数据,我希望您可以执行以下操作:
insert into new_table
select * from old_table order by CAST(Visitorsid AS UNSIGNED)
至少我认为有效...没有MySQL命令行方便尝试:-)。祝你好运!
(已更新以修复MySQL语法并使用正确的列名称)