Как выбрать самый последний набор датированных записей из таблицы MySQL

Вы можете попробовать следующее:

<?php
$string = <<<XMLDoc
<?xml version='1.0'?>
<doc>
  <title>XML Document</title>
  <lotsofxml/>
  <fruits>
XMLDoc;

$fruits = array('apple', 'banana', 'orange');

foreach($fruits as $fruit) {
  $string .= "\n    <fruit>".$fruit."</fruit>";
}

$string .= "\n  </fruits>
</doc>";
?>
<html>
<!-- Show XML as HTML with entities; saves having to view source -->
<pre><?=str_replace("<", "&lt;", str_replace(">", "&gt;", $string))?></pre>
<textarea rows="8" cols="50"><?=$string?></textarea>
</html>
24
задан Community 23 May 2017 в 12:18
поделиться

4 ответа

Сам ответил, но я не уверен, что это будет достаточно эффективное решение, когда таблица растет:

SELECT timestamp,method,id,response FROM rpc_responses 
INNER JOIN
(SELECT max(timestamp),method,id FROM rpc_responses GROUP BY method,id) latest
USING (timestamp,method,id);
14
ответ дан Ken 23 May 2017 в 12:18
поделиться
  • 1
    Это печатает два разделителя строки вместо одного. Как я могу сделать вывод точно тем же как вход? – slartidan 10 February 2019 в 14:36

Понятие "новых" довольно неопределенно. Если Вы имеете в виду что-то как 100 новых строк тогда, можно просто добавить TOP(100) к Вашему SELECT пункт.

, Если Вы имеете в виду "новое" на основе новая дата тогда, можно просто сделать

SELECT timestamp,method,id,response 
FROM rpc_responses
HAVING max(timestamp) = timestamp 
-1
ответ дан Adrian Carneiro 23 May 2017 в 12:18
поделиться
  • 1
    Nah, то решение isn' t право. У меня было 0,1 задержки, но в некоторых случаях это wasn' t достаточно. Если у Вас есть больше содержания, необходимо увеличить задержку снова и снова. – Makalele 13 March 2018 в 11:06

... прошло больше года, но я могу кому-то помочь Чтобы выбрать все запросы, начиная с последнего

SELECT *
FROM rpc_responses
ORDER BY timestamp DESC
-2
ответ дан 28 November 2019 в 21:04
поделиться

Try this...

SELECT o1.id, o1.timestamp, o1.method, o1.response   
FROM rpc_responses o1
WHERE o1.timestamp = ( SELECT max(o2.timestamp)
                       FROM rpc_responses o2
                       WHERE o1.id = o2.id )
ORDER BY o1.timestamp, o1.method, o1.response

... это работает даже в Access!

6
ответ дан 28 November 2019 в 21:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: