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

[SOLUCIONADO] Ordenar Alfabeticamente

Estas en el tema de Ordenar Alfabeticamente en el foro de Mysql en Foros del Web. Hola amimgos del foro estoy tratando de mostrar mi tabla artistas(id,artista,bio) ordenada alfabeticamente para ello hago lo siguiente @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original SELECT ...
  #1 (permalink)  
Antiguo 28/05/2013, 14:59
 
Fecha de Ingreso: febrero-2013
Ubicación: Margarita
Mensajes: 72
Antigüedad: 11 años, 2 meses
Puntos: 0
Ordenar Alfabeticamente

Hola amimgos del foro estoy tratando de mostrar mi tabla artistas(id,artista,bio) ordenada alfabeticamente para ello hago lo siguiente
Código MySQL:
Ver original
  1. FROM artistas
  2. ORDER BY artista ASC
pero no lo ordena correctamente, esta es la salida:

Danielle Martín
Elsy Rangel
María de los Angeles Rivero
Mary Moreno
Mary Pargana
Alba Guarín
Alida Esparragoza
Angel Emiro Ojeda
Benjamín Arenas
Bera Bauza
Carlos Blunck
Cecilio Guerra


como ven pone nombres con D y con M antes de la A y luego los ordena bien.

Alguien sabe por que pasa esto??
Gracias de antemano!!

Última edición por gnzsoloyo; 28/05/2013 a las 19:15 Razón: Código de programacion no permitido en foros de BBDD
  #2 (permalink)  
Antiguo 28/05/2013, 19:17
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, 4 meses
Puntos: 2658
Respuesta: Ordenar Alfabeticamente

Eso no tiene ningún sentido. Pero por simple comprobación, ejecuta esto en el phpMyadmin con tu base, copia el resultado (expandiendo la vista de ser necesario) y postea lo que obtengas:

Código MySQL:
Ver original
  1. SHOW CREATE TABLE artistas;
__________________
¿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 28/05/2013, 20:12
 
Fecha de Ingreso: febrero-2013
Ubicación: Margarita
Mensajes: 72
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Ordenar Alfabeticamente

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Eso no tiene ningún sentido. Pero por simple comprobación, ejecuta esto en el phpMyadmin con tu base, copia el resultado (expandiendo la vista de ser necesario) y postea lo que obtengas:

Código MySQL:
Ver original
  1. SHOW CREATE TABLE artistas;


hice la consulta y me mostro esto

CREATE TABLE `artistas` ( *`id` int(8) NOT NULL AUTO_INCREMENT, *`artista` varchar(80) NOT NULL, *`bio` text, *PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=42 DEFAULT CHARSET=latin1

  #4 (permalink)  
Antiguo 28/05/2013, 21:20
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, 4 meses
Puntos: 2658
Respuesta: Ordenar Alfabeticamente

Eso precisamente era lo que necesitaba. Quería ver exactamente la estructura de la tabla, pero no quería que me dieras una descripción, sino saber cómo era realmente.
Mira, no hay modo que esa consulta te devuelva la tabla desordenada como dices a menos que no estés poniendo realmente el ORDER BY, o que lo estés haciendo ordenandolo por el ID.
Te muestro la evidencia, con tus propios datos:
Código MySQL:
Ver original
  1. mysql> DROP TABLE IF EXISTS `artistas` ;
  2. Query OK, 0 rows affected (0.10 sec)
  3.  
  4. mysql> CREATE TABLE IF NOT EXISTS `artistas`
  5.     -> (`id` int(8) NOT NULL AUTO_INCREMENT,
  6.     -> `artista` varchar(80) NOT NULL,
  7.     -> `bio` text,
  8.     -> PRIMARY KEY (`id`)
  9.     -> ) ENGINE=InnoDB  DEFAULT CHARSET=latin1;
  10. Query OK, 0 rows affected (0.02 sec)
  11.  
  12. mysql> INSERT INTO artistas(artista)
  13.     -> VALUES('Danielle Martín'),
  14.     -> ('Elsy Rangel'),
  15.     -> ('María de los Angeles Rivero'),
  16.     -> ('Mary Moreno'),
  17.     -> ('Mary Pargana'),
  18.     -> ('Alba Guarín'),
  19.     -> ('Alida Esparragoza'),
  20.     -> ('Angel Emiro Ojeda'),
  21.     -> ('Benjamín Arenas'),
  22.     -> ('Bera Bauza'),
  23.     -> ('Carlos Blunck'),
  24.     -> ('Cecilio Guerra');
  25. Query OK, 12 rows affected (0.00 sec)
  26. Records: 12  Duplicates: 0  Warnings: 0
  27.  
  28. mysql>
  29. mysql> SELECT *
  30.     -> FROM artistas
  31.     -> ORDER BY artista ASC;
  32. +----+-----------------------------+------+
  33. | id | artista                     | bio  |
  34. +----+-----------------------------+------+
  35. |  6 | Alba Guarín                 | NULL |
  36. |  7 | Alida Esparragoza           | NULL |
  37. |  8 | Angel Emiro Ojeda           | NULL |
  38. |  9 | Benjamín Arenas             | NULL |
  39. | 10 | Bera Bauza                  | NULL |
  40. | 11 | Carlos Blunck               | NULL |
  41. | 12 | Cecilio Guerra              | NULL |
  42. |  1 | Danielle Martín             | NULL |
  43. |  2 | Elsy Rangel                 | NULL |
  44. |  4 | Mary Moreno                 | NULL |
  45. |  5 | Mary Pargana                | NULL |
  46. |  3 | María de los Angeles Rivero | NULL |
  47. +----+-----------------------------+------+
  48. 12 rows in set (0.00 sec)

Como verás, ordena correctamente.
Ahora bien, si pongo cualquier otra cosa, no sirve:
Código MySQL:
Ver original
  1. mysql> SELECT *
  2.     -> FROM artistas
  3.     -> ORDER BY 1 ASC;
  4. +----+-----------------------------+------+
  5. | id | artista                     | bio  |
  6. +----+-----------------------------+------+
  7. |  1 | Danielle Martín             | NULL |
  8. |  2 | Elsy Rangel                 | NULL |
  9. |  3 | María de los Angeles Rivero | NULL |
  10. |  4 | Mary Moreno                 | NULL |
  11. |  5 | Mary Pargana                | NULL |
  12. |  6 | Alba Guarín                 | NULL |
  13. |  7 | Alida Esparragoza           | NULL |
  14. |  8 | Angel Emiro Ojeda           | NULL |
  15. |  9 | Benjamín Arenas             | NULL |
  16. | 10 | Bera Bauza                  | NULL |
  17. | 11 | Carlos Blunck               | NULL |
  18. | 12 | Cecilio Guerra              | NULL |
  19. +----+-----------------------------+------+
  20. 12 rows in set (0.00 sec)
  21.  
  22. mysql> SELECT *
  23.     -> FROM artistas
  24.     -> ORDER BY bio;
  25. +----+-----------------------------+------+
  26. | id | artista                     | bio  |
  27. +----+-----------------------------+------+
  28. |  1 | Danielle Martín             | NULL |
  29. |  2 | Elsy Rangel                 | NULL |
  30. |  3 | María de los Angeles Rivero | NULL |
  31. |  4 | Mary Moreno                 | NULL |
  32. |  5 | Mary Pargana                | NULL |
  33. |  6 | Alba Guarín                 | NULL |
  34. |  7 | Alida Esparragoza           | NULL |
  35. |  8 | Angel Emiro Ojeda           | NULL |
  36. |  9 | Benjamín Arenas             | NULL |
  37. | 10 | Bera Bauza                  | NULL |
  38. | 11 | Carlos Blunck               | NULL |
  39. | 12 | Cecilio Guerra              | NULL |
  40. +----+-----------------------------+------+
  41. 12 rows in set (0.00 sec)
En resumen: Fíjate en el valor de la primera columna. Si está ordenada, entonces estás ordenando por el ID, y no por el segundo campo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 29/05/2013, 00:25
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Ordenar Alfabeticamente

Si no es lo que dice gnzsoloyo, es decir, si el orden que te sale a ti tampoco es el correspondiente al ID de esos nombres, puede ser que delante de los nombres ordenados los primeros, los que aparecen fuera de lugar alfabético, haya un espacio en blanco. También suele ocurrir eso y puede llegar a volverte loco, pues el espacio en blanco también tiene orden y es anterior al de los caracteres, y además cuando sale en el html no se ve, pues el espacio tras salto de línea no se muestra. Mira si ese es tu caso.
  #6 (permalink)  
Antiguo 29/05/2013, 08:01
 
Fecha de Ingreso: febrero-2013
Ubicación: Margarita
Mensajes: 72
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Ordenar Alfabeticamente

Cita:
Iniciado por jurena Ver Mensaje
Si no es lo que dice gnzsoloyo, es decir, si el orden que te sale a ti tampoco es el correspondiente al ID de esos nombres, puede ser que delante de los nombres ordenados los primeros, los que aparecen fuera de lugar alfabético, haya un espacio en blanco. También suele ocurrir eso y puede llegar a volverte loco, pues el espacio en blanco también tiene orden y es anterior al de los caracteres, y además cuando sale en el html no se ve, pues el espacio tras salto de línea no se muestra. Mira si ese es tu caso.
Gracias jurena en efecto los nombres que aparecian desordenados tenian un espacio en blanco delante se lo quite y anda perfecto.


Etiquetas: alfabeticamente, select, sql, tabla
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:42.