私は、MySQLデータベースに、最も近いタイムスタンプを持つ行を別のタイムスタンプから選択したいテーブルを持っています。MySQLで最も近い整数を見つける最も効率的な方法は?
time
は、タイムスタンプ列(UNIXのUNIXタイムスタンプ)です。私は1250710000
を任意に選んだ。
これは私が作ってみたクエリであり、それを行うには、より効率的な方法があります場合、私は思ったんだけど:
SELECT *, ABS(time - 1250710000) AS time_dist FROM table
ORDER BY time_dist ASC LIMIT 1
が、これはそれを行うための最善の方法ですか?
くそー!私はほとんど正確にそれを入力していた! – NickZoic
素晴らしいアイデアですが、参照タイムスタンプ(この場合は '1250710000')は同じテーブルにありません。 これは言いましたが、私はこのクエリが効率に関してほぼ同じであると仮定します。 – heyitsme
** @ cyouung:**このクエリは、効率の面で同じではありません。あなたのクエリは、* 1行ごとに* ABS(時間 - 125071000)を行います*。 'time'にインデックスがある限り、このクエリは2つ以上の行を読み取ることはありません。 –