1

私のテーブルは、unixtimestamp を含む複数の列で構成されています。

CREATE MyTable(
   id INT NOT NULL AUTO_INCREMENT,
   ...
   timeStart INT(11)
)ENGINE=MyISAM;

新しいアイテムがこのテーブルに継続的に挿入されます。

タイムスタンプ > (MAX(startTime)-X_duration) を持つすべてのアイテムを返す必要があります

それを達成するための単一の最適なクエリを作成することに興味があります。

  1. これを行う簡単な方法の 1 つは、ネストされた select を記述することです。ここで、内側の select は を返し、MAX(timeStart) as maxTimewhere 句よりも大きいすべてのレコードを選択します。

より優れた効率的なソリューションがあるかどうかに興味がありますか?

4

1 に答える 1

2
SELECT  *
FROM    tableName
WHERE   timeStart > (SELECT MAX(timeStart) + INTERVAL -1 SECOND FROM tableName)
于 2013-02-10T14:24:37.880 に答える