Ho una tabella in un database MySQL da cui voglio selezionare la riga con il timestamp più vicino a un altro data data.Il modo più efficace per trovare il numero intero più vicino in MySQL?
time
è la colonna del timestamp (un timestamp UNIX intero). Ho scelto 1250710000
arbitrariamente.
Questa è la domanda che mi è venuta in mente, e mi chiedo se c'è un modo più efficace per farlo:
SELECT *, ABS(time - 1250710000) AS time_dist FROM table
ORDER BY time_dist ASC LIMIT 1
È questo il modo migliore per farlo?
Dannazione! Stavo solo digitando quasi esattamente questo! – NickZoic
Ottima idea, ma il timestamp di riferimento ('1250710000' in questo caso) non si trova nella stessa tabella. Detto questo, presumo che questa query sia la stessa in termini di efficienza? – heyitsme
** @ cyouung: ** Questa query non è la stessa in termini di efficienza. La tua query fa un 'ABS (tempo - 125071000)' su * ogni singola riga *. Finché hai un indice su "ora", questa query non leggerà mai più di due righe. –