skip to Main Content

I had a quick question on how to return a certain value from a column after using the MAX() function on a different column. For instance, I am trying to return the full name of the comedian depending on who has the highest number of videos posted on youtube. I am able to get the number of videos posted but I am having trouble returning the name. “countc” is the column keeping track of how many youtube videos a comedian has posted. I am using PHPMyAdmin.

<?php

    session_start();
    $con = mysqli_connect('localhost','root','') or die("Could not connect");
    mysqli_select_db($con, 'youtube') or die(mysqli_error($con));
    $output = '';

    $query = " SELECT fullname FROM comedian WHERE MAX(countc) AS vidcount ";
    $query_result = mysqli_query($con, $query);

    if($query_result)
    {
        while($row = mysqli_fetch_assoc($query_result))
        {
            $output = "The comedian with the most videos is"." ".$row['vidcount'];
        }
        echo $output;
    }
    else{
        $output = "Could not find top comedian.";
        echo $output;
    }



2

Answers


  1. When I get you right you want to order your comedians by the highest number of posted YouTube videos.

    Try the following …

    SELECT fullname, countc FROM comedian ORDER BY countc DESC
    

    If you want to limit the result to the number of resultsets you want to have, just append a LIMIT to your query.

    SELECT fullname, countc FROM comedian ORDER BY countc DESC LIMIT 1
    

    The above shown example limits the result to a single resultset.

    Login or Signup to reply.
  2. You can use sub query like following :

    SELECT fullname FROM comedian WHERE countc = (SELECT MAX(countc) FROM comedian);
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search