我目前正在使用PHP / MySQL从我的数据库中选择一些数据。我当前的SELECT语句是:
mysql_query("SELECT * FROM tblpm WHERE receiver_id ='$usrID' GROUP BY
thread_id ORDER BY unique_id DESC") or die(mysql_error());
有些列具有相同的“thread-id”,因此,我使用GROUP BY,因此只选择了一个“thread-id”列。一切都适用于分组,但是,它选择的是第一个'thread-id'列,而不是最新的(这是我想要的)。
例如,有4列都具有相同的thread_id:
thread_id unique_id
222 1
222 2
222 3
222 4
当我执行GROUP BY时,我希望它检索具有唯一ID 4(最近创建的列)的那个,而不是唯一ID 1(创建的最旧列)。
有关如何使用SELECT语句实现此目的的任何想法?感谢。
答案 0 :(得分:3)
SELECT thread_id, MAX(unique_id)
FROM tblpm
GROUP by thread_id
这样:
mysql_query(<<<END
SELECT thread_id, MAX(unique_id)
FROM tblpm
WHERE receiver_id ='$usrID'
GROUP by thread_id
END
) or die(mysql_error());
当然,如果它来自浏览器,请确保转义$ usrID。
答案 1 :(得分:0)
SELECT thread_id, max(unique_id)
FROM tblpm
WHERE receiver_id = '$usrID'
GROUP BY thread_id;
答案 2 :(得分:0)
SELECT DISTINCT thread_id, unique_id
FROM tblpm
WHERE receiver_id = '$usrID'
GROUP BY thread_id
ORDER BY unique_id DESC;