繁体   English   中英

如何选择最大日期?

[英]How to select max date?

我的代码是

function lister($a,$con){
    $queryq = " SELECT * FROM note WHERE date= MAX(date)  AND id='".$a."' AND admin='".$_SESSION['login_username']."' ";
    $resultq = mysqli_query($con,$queryq) or die('Error: ' . mysqli_error($con));
    $arrayq=mysqli_fetch_array($resultq,MYSQL_NUM); {
        echo $arrayq[4];
    }
}

有一个错误:

错误:无效使用组功能

我究竟做错了什么?

尝试拆分查询

         $queryA = "SELECT date FROM `note` WHERE id='".$a."' AND admin='".$_SESSION['login_username']."' ORDER BY date DESC LIMIT 1";
         $resultA = mysql_query($con, $queryA);
         $maxDatePerUser = mysql_fetch_array($resultA);
         $queryq = " SELECT * FROM note WHERE id='".$a."' AND admin='".$_SESSION['login_username']."' AND date='" . $maxDatePerUser["date"] ."'";
         $resultq = mysqli_query($con,$queryq) or die('Error: ' . mysqli_error($con));
         $arrayq=mysqli_fetch_array($resultq,MYSQL_NUM); {

该问题是由各种循环引用引起的。

SELECT * FROM note WHERE date= MAX(date)  AND id='".$a."' AND admin='".$_SESSION['login_username']."' "

您要求函数根据相同的内容计算某些内容 - 语句的条件是 MAX(date),但在知道它是什么之前无法计算它。

最好的解决方案是单独找到 MAX(date):

SELECT max(date) FROM note

如有必要,您可以添加其他限制,如果它是 WHERE 的最大日期,即

SELECT max(date) FROM note WHERE id='".$a."' AND admin='".$_SESSION['login_username']."' "

一旦你有了这个,你可以在查询中弹出它:

SELECT * FROM note 
   WHERE date = (SELECT max(date) 
                  FROM note 
                  WHERE id = '" . $a . "' 
                  AND admin = '" . $_SESSION['login_username'] . "')  
   AND id = '" . $a . "' 
   AND admin = '" . $_SESSION['login_username'] . "';

如果没有要测试的数据,很难 100% 正确地进行查询,但这应该可行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM