0

を含むテーブルを取得しました。テーブルID, Names, message, and timeから各 ID から 1 つのメッセージ クエリのみを選択したいです。現在、すべてのメッセージを選択しています。これが私のコードです。

$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 からメッセージ クエリを 1 つだけ選択する方法はありますか?

ありがとう、
クラウス

4

2 に答える 2

3

1つのメッセージだけが必要な場合はLIMIT、このように使用できます

SELECT * FROM table ORDER BY time LIMIT 1

または、あるIDから1つのメッセージのみが必要な場合は、使用できます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 に答える