如何在MySQL中以智能方式更改记录位置?

如何在MySQL中以智能方式更改记录位置?,mysql,sql,record,Mysql,Sql,Record,我在MySQL记录顺序中遇到了一个问题。我的问题是,我希望一张唱片在另一张唱片之前,但实际上我想提升的唱片在其他唱片之下。这是表格: id | column1 1 | Residents 2 | In age from 0 to 6 3 | In age from 6 to 14 4 | In age from 14 to 30 5 | In age from 30 to 66 6 | Total school population 7 | Students in ki

我在MySQL记录顺序中遇到了一个问题。我的问题是,我希望一张唱片在另一张唱片之前,但实际上我想提升的唱片在其他唱片之下。这是表格:

id | column1
 1 | Residents
 2 | In age from 0 to 6  
 3 | In age from 6 to 14 
 4 | In age from 14 to 30 
 5 | In age from 30 to 66  
 6 | Total school population
 7 | Students in kindergarten
 8 | Students in high school
 9 | Other record 
10 | ...
11 | ...
12 | 66 years and over 
我希望第12张唱片正好在第5张之后,因此正好在30岁到66岁之后。有没有聪明的方法


谢谢

RDBMS表中没有行的顺序或位置。SQL查询不会声明或保证以任何可预测的顺序返回行,除非您在查询的order BY子句中指定

因此,如果您希望按所需的顺序查看行,那么表中应该有一些列,您可以在ORDERBY子句中指定这些列。然后,对行重新排序包括更改此列中的值

您可以使用ALTERTABLE来实现这一点

ALTER TABLE tablename ORDER BY columnname ASC;.
但请注意,插入和删除后,表不会保持此顺序

或者你可以简单地选择它

SELECT *  FROM tablename ORDER BY columnname DESC
试试这个

SELECT * 
FROM Table1 
ORDER BY CASE WHEN columnname REGEXP '[0-9]' Then 0 Else 1 End,ID Asc

引入整数顺序列并根据需要进行修改MySQL不跟踪记录顺序。如果您关心输出的顺序,那么需要使用ORDERBY子句,并在提供排序条件的表中包含一些数据。但是,我必须从数据库中恢复这些数据,并查看网页中显示的与适当的主数据相关的数据,例如,0到6岁、6到14岁、66岁及以上的居民,这些都是主人口的详细信息,而总学校人口和co都是教育的详细信息,我怎样才能确定当我恢复数据时,它们会按照我的要求进行排序?对不起,这个sql语句是什么?它会找到包含数字的列名,然后按id排序…@user3019105 WHNE是一个子句或什么的?它的CASE语句…参考链接啊,它不是WHNE,现在我明白了