0

我有一个包含的表ID, Names, message, and time,我想从表中只从每个 ID 中选择一个消息查询,目前我选择所有消息,这是我的代码

$query= mysql_query("SELECT * FROM `table` ORDER BY `time`")or die(mysql_error());
while($arr = mysql_fetch_array($query)){
$num = mysql_num_rows($query);
$msg = $arr['message'];
echo '</br>';
echo $msg;
}

显示按时间排序的所有消息,有没有办法从每个 ID 中只选择一个消息查询?

谢谢,
克劳斯

4

2 回答 2

3

如果您只想要一条消息,您可以LIMIT像这样使用

SELECT * FROM table ORDER BY time LIMIT 1

或者,如果您只想要来自某个 id 的一条消息,那么您可以使用GROUP BY

SELECT * FROM table ORDER BY time GROUP BY id
于 2013-06-29T21:14:18.670 回答
0

当然,很简单

这将获取给定 ID 的所有消息:

$id = 10 //Get your id in any way you need
$query= mysql_query("SELECT `message` FROM `table` WHERE `ID` = $id")or die(mysql_error());

while($arr = mysql_fetch_array($query)){
    $num = mysql_num_rows($query);
    $msg = $arr['message'];
    echo $msg;
}

这将只获取给定 ID 的第一条消息

$id = 10 
$query= mysql_query("SELECT `message` FROM `table` WHERE `ID` = $id LIMIT 1")or die(mysql_error());

$row = mysql_fetch_array($query));
if($row){
    $msg = $row['message'];
    echo $msg;
}else{
    echo 'no messages for id '.$id;
}
于 2013-06-29T21:09:00.993 回答