0

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

同样是对SELECT所有数据执行类似操作的常规协议,按照您想要的方式对其进行排序,然后使用REPLACE命令替换表中的旧数据?

我知道我可以通过以下方式为一个 id 做到这一点:

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

但我需要以某种方式为表中的每个 id 执行此操作。这通常是如何完成的?

4

2 回答 2

1

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

SELECT * from theTable order by  id, weight desc

您不以任何特定顺序存储数据。(即使您尝试这样做也没关系)。

于 2012-08-19T11:59:07.503 回答
0

删除WHERE子句并添加idORDER BY. 这样,您的结果集将首先按 排序id,对于每个id,它将按 排序weight

SELECT * FROM my_table ORDER BY id, weight DESC
于 2012-08-19T11:56:08.317 回答