ho una tabella "fits" strutturata così:

fits_id
description
dec_f
ra_f

dove dec_f e ra_f sono coordinate astronomiche, ma questo è irrilevante per il problema...

poi ho la seguente query che seleziona dalla tabella fits tutti gli oggetti per cui la distanza angolare da un punto definito dal $dec_c e $ra_c è minore di un dato valore ($r)

SELECT * FROM fits
WHERE 2 * ASIN( SQRT(SIN(($dec_c-dec_f)/2)
* SIN(($dec_c-dec_f)/2) + COS($dec_c) * COS(dec_f)
* SIN(($ra_c - ra_f)/2) * SIN(($ra_c - ra_f)/2))) <= $r


ovvero per semplificare:

SELECT * FROM fits
WHERE (espressione) <= $r

io però avrei bisogno di modificare la query perchè mi prendesse solo la riga per cui la distanza è minima, ovvero solo la riga che rende minima l'espressione:
2 * ASIN( SQRT(SIN(($dec_c-dec_f)/2)
* SIN(($dec_c-dec_f)/2) + COS($dec_c) * COS(dec_f)
* SIN(($ra_c - ra_f)/2) * SIN(($ra_c - ra_f)/2)))

ho fatto un po' di tentativi usando la funzione MIN di mysql ma evidentemente sbaglio...

ovvero se io faccio:

SELECT MIN(espressione) FROM fits

mi restituisce i valore minimo dell'espressione e fin qui va bene, ma come faccio ad avere il valore del fits_id della riga corrispondente?

ho provato così

SELECT * FROM fits
WHERE (SELECT MIN(espressione) FROM fits)

ma non funziona non mi restituisce nessuna riga...