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

Ayuda con una consulta en mysql

Estas en el tema de Ayuda con una consulta en mysql en el foro de Bases de Datos General en Foros del Web. Saludos tengo una duda sobre como realizar una consulta un tanto complicada en mysql. tengo una tabla de articulos de prensa que consta de los ...
  #1 (permalink)  
Antiguo 15/10/2004, 12:41
 
Fecha de Ingreso: octubre-2004
Mensajes: 12
Antigüedad: 19 años, 6 meses
Puntos: 0
Ayuda con una consulta en mysql

Saludos tengo una duda sobre como realizar una consulta un tanto complicada en mysql. tengo una tabla de articulos de prensa que consta de los siguientes campos:

- id_noticia (entero autoincremental, clave primaria)
- titulo (encabezado de la noticia)
- resumen (auto explicativo)
- contenido (idem)
- fecha_de_publicacion (tipo fecha, cuando va a salir la noticia)
- fecha_final (tipo fecha, indica la fecha en la que va a dejar de salir)
- prioridad_tapa (entero; indica la posicion en la portada donde va a aparecer la noticia)
- prioridad_seccion (entero; indica la posicion en la pagina de la seccion donde va a aparecer la noticia)
- cod_seccion (int, clave foranea, indica la seccion a la cual pertenece la noticia)

El detalle que tengo es que las noticias salen en una posicion determinada de la pagina segun su prioridad. Quiero buscar la manera de que las noticias salgan en la posicion que le conrresponde solo si no hay noticias de dias siguientes con la misma prioridad, es decir si hay una noticia de prioridad 1 de ayer, salga en la posicion 1 solo si no hay una noticia prioridad 1 de hoy. En caso de que haya una noticia prioridad 1 de hoy, no salga otra noticia prioridad 1 de algun dia anterior.....

Les agradesco su ayuda
  #2 (permalink)  
Antiguo 15/10/2004, 13:23
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Hola tenhitokiri
pues lo que se me ocurre ahora es que hagas la consulta del ultimo registro que has ingresado que tenga alta prioridad:
la conuslta seria mas o menos asi:
Select * from tu_tabla Where prioridad_seccion =1 Order by fecha_de_publicacion DESC Limit 1

esto te dara siempre el ultimo registro ingresado con prioridad 1
saludos!
  #3 (permalink)  
Antiguo 15/10/2004, 14:10
 
Fecha de Ingreso: octubre-2004
Mensajes: 12
Antigüedad: 19 años, 6 meses
Puntos: 0
Pense en esa solucion, pero el detalle es que la pagina tiene 15 posiciones con opcion a ser mas..... realmente hacer 15 consultas no me parece lo mas eficiente, estoy tratando de hacerlo con una sola consulta...... es para un diario de mi ciudad y tiene muchas visitas.....

De todas maneras gracias por la ayuda
  #4 (permalink)  
Antiguo 15/10/2004, 14:16
 
Fecha de Ingreso: octubre-2004
Mensajes: 12
Antigüedad: 19 años, 6 meses
Puntos: 0
Aunque....... pensandolo bien.... me diste una idea... en vez de limitar la busqueda por fecha (con between) la uso para ordenar.......

una pregunta el order by se puede usar con union?

se me ocurre esto
Select * from tu_tabla Where prioridad_seccion =1 Order by fecha_de_publicacion DESC Limit 1
union
Select * from tu_tabla Where prioridad_seccion =2 Order by fecha_de_publicacion DESC Limit 1
......
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 08:21.