0

"ORDER BY DESC"順序付けの原因を使用せずに、テーブルの最後の50行を表示する必要があります。例:次のクエリを実行する場合

mysqli_query("SELECT * FROM table ORDER BY ID DESC LIMIT 50");

最後の50行を取得します。これは、取得したいものだけですが、ここでの問題は、行をエコーすると、最後のIDから開始されるということです。

だから私は解決策としてスターターポイントを推測しています。御時間ありがとうございます。

4

3 に答える 3

1

このような小さなチャットメッセージのリストを一時的に保存して自動的に期限切れにする場合は、大量のデータを永続的に保存することを目的としたRDBMSを使用しないでください。

代わりに、メッセージキューの使用を検討してください。たとえば、RabbitMQ

于 2013-02-21T17:15:42.567 に答える
0
DELETE FROM CHAT_TABLE WHERE ID IN (
     SELECT ID FROM (
        SELECT ID    
        FROM CHAT_TABLE
        ORDER BY TIME DESC
        LIMIT 50) TEMPTBL
);
于 2013-02-21T17:18:23.827 に答える
0

私は自分の問題に対する次の解決策を思いついた:

$qId = mysqli_query($classDB->con,"SELECT id, message, userName FROM chat ORDER BY id DESC LIMIT 1"); /* Getting the last Id of the table */
$rowId = mysqli_fetch_array($qId);
$index = $rowId['id'] - $limit; /* limit = number of rows that I want to show */
$qChat = mysqli_query($classDB->con,"SELECT id, message, userName FROM chat ORDER BY id ASC LIMIT $index, $limit"); /* $index is the starter point*/
 while($row = mysqli_fetch_array($qChat) ){
// show messages
}
于 2013-02-21T21:56:30.207 に答える