可以将MAX()函数与mysqli一起使用吗?

时间:2013-08-15 18:50:15

标签: php mysql max

我无法找到这个问题的正确答案。我有一个非常简单的代码,用于在mysql中进行查询,从表中选择一个确定列(称为流行度)中具有最大值的行(称为注释)。每行都有一个名为comment_id

的列

这是代码:

$ connect_error ='抱歉,再试一次,发生连接错误';

$con = mysqli_connect('localhost','user_name','password') or die($connect_error);

mysqli_select_db($con, 'database') or die($connect_error);

$result = mysqli_query($con, "SELECT MAX(`popularity`) FROM `comments`");

    while ($row = mysqli_fetch_assoc($result)) {
        $most_popular = $row['comment_id'];             
            }

    echo "most popular is: $most_popular";

        mysqli_free_result($result);

        mysqli_close($con); 

屏幕未显示正确的结果。有人可以就这方面给我一个建议吗?

谢谢

5 个答案:

答案 0 :(得分:3)

您希望显示comment_id字段,但在SELECT查询中没有该字段。您只选择最大popularity值,而不是其他任何内容。

请尝试以下查询:

SELECT comment_id FROM comments ORDER BY popularity DESC LIMIT 1

这是按受欢迎程度对评论进行排序,然后选择最重要的评论。

当然,如果您希望能够在此记录中显示其他值,则可以轻松更改该列以选择更多列甚至是SELECT *

答案 1 :(得分:1)

要选择具有最大'受欢迎程度'列的行,请使用此查询;

$result = mysqli_query($con, "SELECT * FROM `comments` ORDER BY `popularity` DESC LIMIT 1");

如果您希望按人气排序,请删除LIMIT 1 ...

答案 2 :(得分:0)

当您的查询结果命名为comment_id时,您正尝试从名为MAX(popularity)的列中读取结果

答案 3 :(得分:0)

你需要

SELECT MAX(`popularity`) AS comment_id FROM `comments`

这将为列提供关联数组的正确名称。

答案 4 :(得分:0)

首先在mysql“ SELECT MAX(popularity)FROM comments中运行此查询。此输出为您提供与$ row [{index]一起使用的索引,即第一行在这种情况下,索引将为popularity,否则只需将$ row [{content_id]更改为$ row [{popularity]