MySQL查询涉及多行,基于最大值访问一行

时间:2012-09-06 05:08:01

标签: mysql sorting

所以我试图让一个脚本根据特定的id访问表的所有值。该脚本使用PHP返回数组中的值:

示例:

// Select data from DB 
$query = 'SELECT * FROM experiences WHERE user_id = ' . $id; 
$result = mysqli_query($link, $query) or die (mysqli_error($link));

// Not sure this actually creates a 2D array...
$array = mysqli_fetch_array($result); 

但是,我意识到我需要针对特定​​任务修改结果,例如特定值最高的行。

我将如何做到这一点,$ array实际上是否包含所有行和各自的字段?

2 个答案:

答案 0 :(得分:1)

TRY

'SELECT * FROM experiences WHERE user_id ='.$id.' HAVING MAX(column_name)

OR

 "SELECT max(column_name), other column...
  FROM experiences 
  WHERE user_id =".(int)$id  

答案 1 :(得分:1)

假设您已正确清理$id,则可以执行此操作

// Select data from DB 
$query = 'SELECT * FROM experiences WHERE user_id = ' . $id; 
$result = mysqli_query($link, $query) or die (mysqli_error($link));

$data = array();
while($row = mysqli_fetch_array($result)) {
  $data[] = $row;
}

$data将包含您正在寻找的2D数组。

如果您想要特定值最高的行,建议您根据需要调查ORDER BYMAX()