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

Consulta MySQL que me esta complicando la vida...

Estas en el tema de Consulta MySQL que me esta complicando la vida... en el foro de Mysql en Foros del Web. Hola gente: Existe alguna especie de if-else en MySQL? puesto que necesitaría algo así y no lo consigo... Necesito ordenar los resultados de una consulta ...
  #1 (permalink)  
Antiguo 01/03/2006, 00:12
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 20 años, 10 meses
Puntos: 2
Consulta MySQL que me esta complicando la vida...

Hola gente:

Existe alguna especie de if-else en MySQL? puesto que necesitaría algo así y no lo consigo...

Necesito ordenar los resultados de una consulta segun la fecha (datetime) del ultimo mensaje (guardada en el campo last_date) DESC y por la fecha de creación (guardada en el campo date) DESC, algo asi:

Código PHP:
$_sql_forums mysql_query("SELECT * FROM `forums_topics` WHERE `forum` = '$_GET[f]' AND `sforum` = '$_GET[sf]' ORDER BY `last_date` DESC, `date` DESC"); 
Facil... pero aca viene mi problema...

El campo "last_date" puede estar VACIO (0000-00-00 00:00:00) y por ello me esta ordenando mal los resultados, doy un ejemplo:

orden | date | last_date
1 | 2006-03-01 00:29:10 | 2006-03-01 01:02:29
2 | 2006-03-01 01:23:03 | 0000-00-00 00:00:00

Cuando en realidad deberia ser
1 | 2006-03-01 01:23:03 | 0000-00-00 00:00:00
2 | 2006-03-01 00:29:10 | 2006-03-01 01:02:29

Se entiende? siempre lista segun el last_date... por eso necesitaria hacer un order by con, por ejemplo, un if..

La idea:

Código PHP:
$_sql_forums mysql_query("SELECT * FROM `forums_topics` WHERE `forum` = '$_GET[f]' AND `sforum` = '$_GET[sf]' ORDER BY if (`last_date` = '0000-00-00 00:00:00') {`date` DESC } else {`last_date` DESC, `date` DESC"); 
Bueno, creo que la idea se entiende, el tema es que no se aplicarla -obviamente los if no funcionan....
__________________
I Love Programming...
  #2 (permalink)  
Antiguo 01/03/2006, 00:14
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 20 años, 10 meses
Puntos: 2
bueno.. "BEGIN__VBULLETIN__CODE__SNIPPET " no va... se agrego solo :p
__________________
I Love Programming...
  #3 (permalink)  
Antiguo 07/06/2006, 19:40
 
Fecha de Ingreso: junio-2006
Mensajes: 5
Antigüedad: 17 años, 9 meses
Puntos: 0
Hola..

Hola compañero..

Te cuento, en Mysql no funciona los if en su reemplazo se utiliza case when

te muestro un ejemplo:

if (condicion)
{
positivo
} else {
negativo
}

para Mysql es

case when condicion then positivo else negativo end

espero te sirva..
  #4 (permalink)  
Antiguo 11/06/2006, 19:12
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 20 años, 10 meses
Puntos: 2
guido, sos un crack!

muchisimas gracias por revivir este topic ;)

Abrazos. Tomás.
__________________
I Love Programming...
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 01:26.