Ver Mensaje Individual
  #16 (permalink)  
Antiguo 11/05/2012, 21:48
Avatar de gnzsoloyo
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: Ordenar registros sin ID

Mira, en principio, no me parece que el nombre de un edificio sea una buena elección para una clave primaria, y menos aún si la tabla abarcar-a diferentes ciudades, provincias y hasta países.
¿Tienes idea de cuántos edificios pueden llamarse igual en esas circunstancias?
Solamente en Argentina (mi país) conozco en tres provincias 14 edificios llamados "El Palomar", un centenar o más aún que se llaman "Libertador San Martín" y ni hablemos de otros nombres más característicos de la historia.
Tienes que entender que una PK debe ser siempre única, e identificar unívocamente a un sólo registro en la tabla. Si el campo que vas a usar no tiene esa cualidad, tienes dos alternativas:
1) Usas más de un campo en la construcción de la PK, de modo que la combinación de como resultado una clave única.
2) Creas la clave en base a un sistema de numeración o un sistema de codificación propio (por ejemplo, combinando las letras usadas para designar a un país, mas el numero de DDN de la ciudad).
Cualquiera de las opciones que elijas, deberás mantenrla por siempre.

Además de esto, veo que estás usando tablas MyIAM.
¿Estás conciente de que ese tipo de tablas carece de integridad referencial? Es de cir, no se pueden definir FOREIGN KEY con ese tipo de tablas.
Son muy funcionales cuando hay alto nivel de escritura en tablas, pero sino, no aporta mayores ventajas.
Además, carecen de control de transacciones, por lo que manejar la concurrencia de usuarios escribiendo es un problema.

Finalmente, el ordenamiento en el caso que muestras será siempre alfabético, por lo que si quieres otros ordenamientos deberás indicar cuáles y en base a qué criterios.
Si los quieres por orden de ingreso, deberás ordenarlos por "fecha", si los deseas por pais y por ingreso, será "pais", "fecha"; etc.

Respecto al caso de muestra que te puse, lo que el faltaba era un poco de corrección de sintaxis:
Código MySQL:
Ver original
  1. FROM (SELECT * FROM edificiosORDER BY nombre DESC) t1
  2. ORDER BY nombre

Una nota final: Las fechas deben ser DATE, DATETIME o TIMESTAMP. No INT.
Un INTN para almacenar la fecha sólo sirve si vas a usar UNIX_TIMESTAMP.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)