Ver Mensaje Individual
  #4 (permalink)  
Antiguo 14/08/2014, 13:56
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 4 meses
Puntos: 2658
Respuesta: Problemas con #1241 - Operand should contain 1 column(s)

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
  1.     `category_id`,
  2.     `category_name`,
  3.     `category_icon`,
  4.     COUNT(`markers_category_id`) AS total
  5.     `category`
  6.     LEFT JOIN markers ON category.category_id = markers.markers_category_id
  7.     `category_id` IN
  8.         (SELECT
  9.             markers_category_id
  10.        FROM markers
  11.        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)
  12. GROUP BY `category_name`

A mi entender la SF sería el mejor camino...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)