Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Problema con where en esta consulta

Estas en el tema de Problema con where en esta consulta en el foro de Mysql en Foros del Web. Hola buenas noches. tengo la siguiente consulta a mysql @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original SELECT id , textoprin , textosec , ( MATCH ( ...
  #1 (permalink)  
Antiguo 25/07/2013, 21:08
Avatar de oscarva  
Fecha de Ingreso: agosto-2004
Ubicación: Bogota - Colombia
Mensajes: 425
Antigüedad: 19 años, 8 meses
Puntos: 2
Problema con where en esta consulta

Hola buenas noches.

tengo la siguiente consulta a mysql
Código MySQL:
Ver original
  1. SELECT id, textoprin, textosec, (MATCH (textoprin) AGAINST ('$termino' IN BOOLEAN MODE) + MATCH (textoprin, textosec) AGAINST ('$termino' IN BOOLEAN MODE) ) as puntuacion FROM buscadatos WHERE MATCH (textoprin, textosec) AGAINST ('$termino') ORDER BY puntuacion DESC
]

lo que quiero es indicarle que me muestre solo los resultados donde puntuacion sea mayor a X

estoy probando con lo siguiente:

Código MySQL:
Ver original
  1. SELECT id, textoprin, textosec, (MATCH (textoprin) AGAINST ('$termino' IN BOOLEAN MODE) + MATCH (textoprin, textosec) AGAINST ('$termino' IN BOOLEAN MODE) ) as puntuacion FROM buscadatos WHERE MATCH (textoprin, textosec) AGAINST ('$termino') [B]AND puntuacion > '4'[/B] ORDER BY puntuacion DESC
pero me da el clásico error "Mysql dijo: Unknown column 'puntuacion' in 'where clause'"

Como puedo limitar estos resultados?

Muchas Gracias.
__________________
Colsitio. Guía de Hosting

Última edición por gnzsoloyo; 26/07/2013 a las 03:28
  #2 (permalink)  
Antiguo 26/07/2013, 03:29
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: Problema con where en esta consulta

Cita:
Iniciado por oscarva Ver Mensaje
Hola buenas noches.

tengo la siguiente consulta a mysql

Código MySQL:
Ver original
  1. SELECT id, textoprin, textosec, (MATCH (textoprin) AGAINST ('$termino' IN BOOLEAN MODE) + MATCH (textoprin, textosec) AGAINST ('$termino' IN BOOLEAN MODE) ) as puntuacion FROM buscadatos WHERE MATCH (textoprin, textosec) AGAINST ('$termino') ORDER BY puntuacion DESC

lo que quiero es indicarle que me muestre solo los resultados donde puntuacion sea mayor a X

estoy probando con lo siguiente:


Código MySQL:
Ver original
  1. SELECT id, textoprin, textosec, (MATCH (textoprin) AGAINST ('$termino' IN BOOLEAN MODE) + MATCH (textoprin, textosec) AGAINST ('$termino' IN BOOLEAN MODE) ) as puntuacion FROM buscadatos WHERE MATCH (textoprin, textosec) AGAINST ('$termino') [B]AND puntuacion > '4'[/B] ORDER BY puntuacion DESC

pero me da el clásico error "Mysql dijo: Unknown column 'puntuacion' in 'where clause'"

Como puedo limitar estos resultados?

Muchas Gracias.
supongo que cuando te refieres a puntuacion quieres decir id de la tabla no?

si es así cambia puntuacion por puntuacion.id en la cláusula where.

di si te funcionó.

saludos :)

Última edición por gnzsoloyo; 26/07/2013 a las 04:52
  #3 (permalink)  
Antiguo 26/07/2013, 03:29
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Problema con where en esta consulta

Regla absoluta de todos los DBMS: No se peuden usar los alias puestos en las collumnas del SELECT en el WHERE de la misma consulta.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 26/07/2013, 03:34
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: Problema con where en esta consulta

entonces debería poner AND buscadatos.id < 4 ORDER BY buscadatos.id DESC no?

y gracias por la aclaración gnzsoloyo! :)
  #5 (permalink)  
Antiguo 26/07/2013, 04:58
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Problema con where en esta consulta

Es una opción, creo, pero también se podría usar HAVING:

Código MySQL:
Ver original
  1.     id,
  2.     textoprin,
  3.     textosec,
  4.     (MATCH (textoprin) AGAINST ('$termino' IN BOOLEAN MODE) + MATCH (textoprin, textosec) AGAINST ('$termino' IN BOOLEAN MODE) ) puntuacion
  5. FROM buscadatos
  6. HAVING puntuacion > 4
  7. ORDER BY puntuacion DESC
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 26/07/2013, 13:37
Avatar de oscarva  
Fecha de Ingreso: agosto-2004
Ubicación: Bogota - Colombia
Mensajes: 425
Antigüedad: 19 años, 8 meses
Puntos: 2
Respuesta: Problema con where en esta consulta

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Es una opción, creo, pero también se podría usar HAVING:

Código MySQL:
Ver original
  1.     id,
  2.     textoprin,
  3.     textosec,
  4.     (MATCH (textoprin) AGAINST ('$termino' IN BOOLEAN MODE) + MATCH (textoprin, textosec) AGAINST ('$termino' IN BOOLEAN MODE) ) puntuacion
  5. FROM buscadatos
  6. HAVING puntuacion > 4
  7. ORDER BY puntuacion DESC
De esta manera funciono perfecto, muchas gracias a todos por sus respuestas.
__________________
Colsitio. Guía de Hosting

Etiquetas: select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:12.