我有一个包含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中仅选择一个消息查询?
谢谢,
克劳斯
答案 0 :(得分:3)
如果您只想要一条消息,可以使用LIMIT
这样的
SELECT * FROM table ORDER BY time LIMIT 1
或者,如果您只需要来自某个ID的一封邮件,则可以使用GROUP BY
SELECT * FROM table ORDER BY time GROUP BY id
答案 1 :(得分: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;
}