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

MYSQL Ordenar consulta por diferentes ID

Estas en el tema de MYSQL Ordenar consulta por diferentes ID en el foro de Mysql en Foros del Web. Estimados, a ver si me ayudan Tengo la siguiente estructura observen; @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original CREATE TABLE IF NOT EXISTS `noticias` (   ...
  #1 (permalink)  
Antiguo 09/06/2014, 13:23
Avatar de datcom  
Fecha de Ingreso: enero-2011
Ubicación: Universo local, Vía láctea, Planeta Azul.
Mensajes: 216
Antigüedad: 13 años, 9 meses
Puntos: 0
MYSQL Ordenar consulta por diferentes ID

Estimados, a ver si me ayudan

Tengo la siguiente estructura observen;

Código MySQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS `noticias` (
  2.   `id` int(11) NOT NULL AUTO_INCREMENT,
  3.   `id_cat` int(11) NOT NULL,
  4.   `date_news` date NOT NULL,
  5.   `titulo` varchar(255) NOT NULL,
  6.   `web` text NOT NULL,
  7.   `bajada` text NOT NULL,
  8.   `descripcion` text NOT NULL,
  9.   `imagen` varchar(255) NOT NULL,
  10.   `deleted` tinyint(4) NOT NULL DEFAULT '0',
  11.   PRIMARY KEY (`id`)
  12. ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=188 ;

Necesito realizar una consulta desde PHP e ordenarlos por los ID, pero quiero que si por ejemplo tengo los ID: 1,2,3,4,5 poder ordenarlos como yo necesito osea;

4,5,3,1,2,3 en ese orden restringido, no me sirve ordenarlo DESC o ASC.

Gracias
__________________
De la Luz venimos, y hacia la Luz vamos.
Solo hay una sola verdad, y esa es el Amor.
Ayuda aquien tienes al lado y seras ayudado.
Ánimo!
  #2 (permalink)  
Antiguo 09/06/2014, 14:59
Avatar de 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
Puntos: 2658
Respuesta: MYSQL Ordenar consulta por diferentes ID

Técnicamente es posible, pero necesitarías conocer previamente el set de valores sobre los que se va a ordenar. De otro modo es imposible.
Algo como:
Código MySQL:
Ver original
  1. FROM noticias
  2. ORDER BY FIELD(id, 4,5,3,1,2);
Manual de referencia:
Cita:
FIELD(str,str1,str2,str3,...)

Returns the index (position) of str in the str1, str2, str3, ... list. Returns 0 if str is not found.

If all arguments to FIELD() are strings, all arguments are compared as strings. If all arguments are numbers, they are compared as numbers. Otherwise, the arguments are compared as double.

If str is NULL, the return value is 0 because NULL fails equality comparison with any value. FIELD() is the
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 10/06/2014, 10:02
Avatar de datcom  
Fecha de Ingreso: enero-2011
Ubicación: Universo local, Vía láctea, Planeta Azul.
Mensajes: 216
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: MYSQL Ordenar consulta por diferentes ID

Perfecto, dejo mi consulta como me quedo funcionando par quien le sirva:

Código MySQL:
Ver original
  1. SELECT * FROM noticias  ORDER BY FIELD(`id`, '4', '5', '3'. '1', '2')


gnzsoloyo Gracias.
Saludos
__________________
De la Luz venimos, y hacia la Luz vamos.
Solo hay una sola verdad, y esa es el Amor.
Ayuda aquien tienes al lado y seras ayudado.
Ánimo!

Última edición por datcom; 10/06/2014 a las 10:21

Etiquetas: consulta-mysql
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 07:22.