SQL - 更新 TABLE 和 ORDER BY?
SQL - UPDATE TABLE and ORDER BY?
所以我有一个无序的 table movement
,其中包含列 timestamp
、x
和 y
。我想按 timestamp
排序,然后更改并保存 table 以使所有行按时间戳排序。
我想使用 UPDATE TABLE
但我不确定查询的外观...例如,我有这个:
UPDATE movement
SET ?????
ORDER BY timestamp;
我不想设置任何东西,我只想更改 table 的顺序。我需要为我将要编写的另一个查询执行此操作,但事实是这个 table 非常大,我需要逐步分解,以便以后的性能不会太差。那我该怎么做呢?我发现 this SO post 解决了类似的问题,但我想知道是否有另一种方法可以做到这一点而不是使用另一个 table,因为正如我所说,这个 table 非常大(数百万行),重新复制 table 需要很长时间。
表格本身没有顺序;您不必将它们更新为任何特定顺序。
你所做的就是从 table 中选择你 SELECT 的顺序。然后它可以按照您选择的任何顺序!
示例:
SELECT * FROM movement
ORDER BY timestamp;
但是你可能想在其他地方:
SELECT * FROM movement
ORDER BY timestamp DESCENDING;
您不能在 UPDATE
语句中使用 ORDER BY
。 ORDER BY
只能与 SELECT
语句一起使用。同样,不需要按特定顺序存储记录,因为您可以使用 SELECT statement
like
按特定顺序显示记录
select * from movement
order by timestamp
关系数据库table表示无序集。没有排序 table 的语法,只是因为没有 table 中行的顺序这样的概念。当您在没有显式 order by
子句的情况下发出查询时,数据库可能会 return 以它认为合适的任何顺序向您提供行,这可能会受到它们插入和写入磁盘的顺序的影响,它们存在于某些内存缓存、索引或许多其他实现细节中。
如果要查询按时间戳排序的 table 行,只需在 order by
子句中明确说明即可:
SELECT *
FROM `movement`
ORDER BY `timestamp`
其实是可以的。这是 MySQL 格式...更新是为了编辑已经存在的信息。如果要进行更直接的更改,请根据语法使用 ALTER 或 MODIFY。
ALTER TABLE movement
ORDER BY timestamp;
所以我有一个无序的 table movement
,其中包含列 timestamp
、x
和 y
。我想按 timestamp
排序,然后更改并保存 table 以使所有行按时间戳排序。
我想使用 UPDATE TABLE
但我不确定查询的外观...例如,我有这个:
UPDATE movement
SET ?????
ORDER BY timestamp;
我不想设置任何东西,我只想更改 table 的顺序。我需要为我将要编写的另一个查询执行此操作,但事实是这个 table 非常大,我需要逐步分解,以便以后的性能不会太差。那我该怎么做呢?我发现 this SO post 解决了类似的问题,但我想知道是否有另一种方法可以做到这一点而不是使用另一个 table,因为正如我所说,这个 table 非常大(数百万行),重新复制 table 需要很长时间。
表格本身没有顺序;您不必将它们更新为任何特定顺序。
你所做的就是从 table 中选择你 SELECT 的顺序。然后它可以按照您选择的任何顺序!
示例:
SELECT * FROM movement
ORDER BY timestamp;
但是你可能想在其他地方:
SELECT * FROM movement
ORDER BY timestamp DESCENDING;
您不能在 UPDATE
语句中使用 ORDER BY
。 ORDER BY
只能与 SELECT
语句一起使用。同样,不需要按特定顺序存储记录,因为您可以使用 SELECT statement
like
select * from movement
order by timestamp
关系数据库table表示无序集。没有排序 table 的语法,只是因为没有 table 中行的顺序这样的概念。当您在没有显式 order by
子句的情况下发出查询时,数据库可能会 return 以它认为合适的任何顺序向您提供行,这可能会受到它们插入和写入磁盘的顺序的影响,它们存在于某些内存缓存、索引或许多其他实现细节中。
如果要查询按时间戳排序的 table 行,只需在 order by
子句中明确说明即可:
SELECT *
FROM `movement`
ORDER BY `timestamp`
其实是可以的。这是 MySQL 格式...更新是为了编辑已经存在的信息。如果要进行更直接的更改,请根据语法使用 ALTER 或 MODIFY。
ALTER TABLE movement
ORDER BY timestamp;