Php 获取组中ID最高的值-MySQL

Php 获取组中ID最高的值-MySQL,php,mysql,Php,Mysql,我试图从组中获取ID最高的行,而不是最低的行。我听说你必须做那个加入把戏,但这很让人困惑,我也没办法想清楚 到目前为止,我的代码是: $userp0l=//userID $where=//forumID SELECT * FROM `noti` WHERE forum='$where' AND user <> '$userp0l' GROUP BY user ORDER BY `id` DESC 我需要找到show

我试图从组中获取ID最高的行,而不是最低的行。我听说你必须做那个加入把戏,但这很让人困惑,我也没办法想清楚

到目前为止,我的代码是:

$userp0l=//userID
$where=//forumID
    SELECT * 
    FROM `noti` 
    WHERE forum='$where' 
    AND user <>  '$userp0l'
    GROUP BY user 
    ORDER BY `id` 
    DESC
我需要找到shownoti的最新条目是1还是0。问题是,在分组时,它使用第一个条目,而不是最新条目。因此,如果最近的条目的shownoti值为0,但第一个条目的值为1,则在看到第一个条目时,它将始终显示1。基本上,我想将组向后排序。

使用


您必须记住,420中的4大于1350中的1,因此您的排序可能需要稍微不同。我创建了一个。

换句话说,它不工作!那是什么把戏?基本上,这个问题的答案。我对这个JOIN方法做了一些尝试,但是除了语法错误之外,我什么也没做到哦,继续说,向我们展示您的尝试。JOIN与从表中选择最高id有什么关系?@itachi您也可以查看我在上面的评论中提供的链接。刚刚尝试,得到了相同的结果,就好像我没有使用distinct一样。我开始觉得这是一条死胡同。我只是想获得每个单独用户值的最新数据行。我又做了一次编辑,看看你是否更接近@GabenNewil。如果你能在SQL FIDLE中设置一个更完整的数据示例,我们就可以解决这个问题。SQL FIDLE非常棒,除了我不能获取所有数据之外。我真的需要shownoti和用户,但shownoti不应该是不同的:/老实说,我觉得我们可能已经走到了死胡同。围绕这一点肯定有无数种方法,可能是创建第二个表或其他我不知道所有数据都与什么相关的东西,因此告诉您如何规范化它将是一件麻烦事。看看这个-
 $elist = mysql_query("SELECT * FROM `noti` WHERE forum='$where' AND user <>  '$userp0l' GROUP BY user ORDER BY `id` DESC") or die(mysql_error());
if(mysql_num_rows($elist) > 0){
while($elist_result = mysql_fetch_array($elist)){
  $shownotir=$elist_result['shownoti']; 
  $userr=$elist_result['user'];
  $forumr=$elist_result['forum'];
    if($shownotir=="n"){
            $pps="INSERT INTO `noti`(`user`, `forum`, `shownoti`, `forumn`, `madeby`) VALUES ('$userr', '$where', '0', '$forumn', '$uu')";
        mysql_query($pps) or die(mysql_error());
    }
    else {
        $pps="INSERT INTO `noti`(`user`, `forum`, `shownoti`, `forumn`, `madeby`) VALUES ('$userr', '$where', '1', '$forumn', '$uu')";
        mysql_query($pps) or die(mysql_error());
    }
     }
    }
SELECT DISTINCT `user`, `shownoti`
FROM `noti` 
WHERE forum = '97' 
AND user <> '9797'
GROUP BY `user`, `shownoti`
ORDER BY `id` DESC