Hay dos caminos.
- El más eficiente es crear una stored function con ese cálculo, y usarla directamente. Para eso puede usar el ejemplo que tienes en las FAQs de MySQL (
http://www.forosdelweb.com/f86/faqs-...1/#post4198983). Ese ejemplo te devuelve la distancia entre dos puntos geográficos en Km.
- Puedes meterlo en las propias condiciones del WHERE de la subconsulta:
Código MySQL:
Ver original `category_id`,
`category_name`,
`category_icon`,
COUNT(`markers_category_id`) AS total
`category`
LEFT JOIN markers
ON category.category_id
= markers.markers_category_id
markers_category_id
WHERE ( ROUND(((acos(sin((40.367 * pi()/180)) * sin((markers.markers_lat
*pi()/180))+cos((40.367 * pi()/180)) * cos((markers.markers_lat
*pi()/180)) * cos(((-3.706 - markers.markers_lng
) *pi()/180))))*180/pi())*60*1.1515*1609.344) ) < 7000)
A mi entender la SF sería el mejor camino...