我有下表。
comment postid userid tempid
c1 199 100003052455644 89
c2 193 100003052455644 2
c4 199 100003052455644 82
c5 198 100003052455644 5
c6 199 1097517748 65
现在我想以这样一种方式检索数据,即数据首先根据postid
列按降序排列,然后按插入行的顺序排列。现在,当我检索 postid 按降序排列的值时,它给了我结果是这样的。
comment postid userid tempid
c6 199 1097517748 65
c4 199 100003052455644 69
c1 199 100003052455644 82
c5 198 100003052455644 5
c2 193 100003052455644 2
正如您所看到的,最后评论的用户 ID 出现在第一个位置。在postid 中。我也通过按降序199
对列进行排序来解决这个问题。tempid
但是有没有办法让我不使用 tempid 列,因为这个表将很快填满,自动增量列将很快填满,所以我将来会删除这个临时列。所以我认为这样做不是一个好主意,还有其他解决方案吗?
现在我正在使用以下查询,它给了我正确的结果。
SELECT comments.comment,comments.postid,user.name,comments.userid,comments.tempid
FROM
user
INNER JOIN comments ON user.userid=comments.userid
INNER JOIN posts ON posts.postID = comments.postid
WHERE
comments.postid <=
(SELECT MAX(postid) FROM
(
SELECT wall.postid FROM wall,posts WHERE
wall.postid = posts.postid AND posts.userid=?
ORDER BY wall.postid DESC LIMIT 10 OFFSET ?
)sq1
)
AND
comments.postid >=
(SELECT MIN(postid) FROM
(
SELECT wall.postid FROM wall,posts WHERE
wall.postid = posts.postid AND posts.userid=?
ORDER BY wall.postid DESC LIMIT 10 OFFSET ?
)sq2
)
AND
posts.userid = ?
ORDER BY comments.postid DESC,comments.tempid DESC;
只有最后一行是我们关心的。我想在删除comments.tempid DESC
子句的同时获得相同的结果。是否可以?