仅按字段对具有相同ID的记录排序记录

时间:2012-08-19 11:53:23

标签: mysql sql

我在SQL中有一个EAV表,通常每个ID都有几个记录。这些记录中的每一个都在名为“weight”的列中具有数值,并且我正在尝试对此表进行排序,以便对于每个ID,记录按权重的降序排列。这将是一个一次性的过程,因为我打算确保数据在将来进入表时进行排序。

对于SELECT所有数据执行此类操作的正常协议,按您希望的方式对其进行排序,然后使用REPLACE命令替换表中的旧数据?

我知道我可以通过以下方式为一个id执行此操作:

SELECT * FROM my_table WHERE id = 'X' ORDER BY weight DESC

但我需要以某种方式为我表中的每个id执行此操作。这通常是怎么做的?

2 个答案:

答案 0 :(得分:1)

在这种情况下,您将始终按照您希望的顺序返回数据:

SELECT * from theTable order by  id, weight desc

您不以任何特定顺序存储数据。 (即使你尝试这不重要)。

答案 1 :(得分:0)

删除WHERE子句并将id添加到ORDER BY。这样,您的结果集将首先由id订购,对于每个id,它将按weight排序。

SELECT * FROM my_table ORDER BY id, weight DESC