按时间戳排序MySQL表

时间:2012-06-27 04:42:12

标签: php mysql sorting timestamp

我运行了一个数据采集板,我生成一个PHP代码,每15分钟提取一次数据,然后将其插入表格中。

这很好用。但是,如果由于某种原因连接丢失或某些值丢失,我想生成一个恢复功能,所以我想出如何向董事会询问一些值,但我需要弄清楚如何发布恢复的数据和然后按时间戳排序整个表顺序。

为此,我想使用php,我放置此代码

$result = mysql_query("SELECT * FROM `table` ORDER BY `date` DESC;" );

但这不会造成任何影响。我需要对表格进行排序而不是结果。

有没有简单的方法呢?

修改

使用时间戳提取数据,现在我的表具有以下结构:

id  |  TimeStamp  |  Temperature
  • 我的idINT NOT NULL AUTO_INCREMENT PRIMARY KEY
  • timestamp
  • temperaturevarchar(15)

php函数获取adquicition board的最后一个值并将其插入最后一个id。我只是放置时间戳来制作数据的历史记录。但是我希望该表能够在这个字段中排序,以便恢复。为了恢复,对电路板的调用功能与连续模式不同。这就是我使用顺序插入的原因,如果在完成丢失的数据恢复后,我可以使用时间戳对整个表进行排序。

2 个答案:

答案 0 :(得分:0)

根据我对这个问题的解读,这与希望表格中的数据将根据TimeStamp插入而不是按顺序插入的愿望有关。

如果作者能够澄清这种需求是如何产生的,那么SO社区可能会提供更多帮助。

答案 1 :(得分:0)

我知道这不是你想要听到的答案,但是 - 不幸的是 - 这是真的:没有“表的顺序”这样的东西 - 表是行的集合,而不是行的顺序。这就是为什么你只能订购结果而不是表本身(操作没有意义)。

您需要做的是重新考虑您的设计,花一些时间阅读一本关于数据库的好书,并摆脱一些错误的假设。

如果你想要实现的是“确保按照时间戳订购主键”,那么你应该不希望这样,有方法,但它们都是疯了。最简单的(可能)是使用 select into 将所有行转储到其他表中,然后从原始表中删除它们并再次插入。无论如何:不要试试这个。你不需要订购你的桌子。