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

Ordenamiento de filas

Estas en el tema de Ordenamiento de filas en el foro de Mysql en Foros del Web. Saludos. Tengo una tabla la cual al agregarle datos, las filas se organizan por su clave primaria. Quisiera saber como hago para que al agregar ...
  #1 (permalink)  
Antiguo 25/05/2009, 08:44
 
Fecha de Ingreso: septiembre-2007
Mensajes: 122
Antigüedad: 16 años, 7 meses
Puntos: 1
Ordenamiento de filas

Saludos.

Tengo una tabla la cual al agregarle datos, las filas se organizan por su clave primaria. Quisiera saber como hago para que al agregar nuevas filas no se organice de este modo sino estilo pila.

Por ejemplo si ingreso los datos 3, 5 y 1, no quiero que luego aparezcan en la base de datos 1, 3 y 5, sino que aparezcan 3, 5 y 1 tal cual los ingresé.

Es posible hacerlo?

Gracias por su colaboración.
  #2 (permalink)  
Antiguo 25/05/2009, 09:09
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, 5 meses
Puntos: 2658
Respuesta: Ordenamiento de filas

Los ordenamientos dependen en principio de la PK, luego por la forma que pongas los campo sen el SELECT, luego por el ORDER BY, pero:
- Si tienes un campo clave autonumérico, no ingresas los ID, esos los pone el sistema, así que siempre saldrían en el mismo orden en que entraron.
- Si tienes un ID autonumérico y estás poniendo los ID a mano, no tiene sentido que sea autonumérico (con lo que desperdicias la capacidad de esos campos) y además para ordenarlos de ese modo deberás tener un campo DATETIME o TIMESTAMP que almacene el momento en que se ingresaron. De ese modo, podrás usar el ORDERBY.
- Si no tienes un ID autonumérico, ni un campo DATETIME o TIMESTAMP, no hay corma en que puedas ordenarlo así sin eliminar los índices o inhabilitarlos, pero por default MySQL ordena entonces por SELECT...
__________________
¿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 25/05/2009, 09:11
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Ordenamiento de filas

Parte de la funcion de la llavce primaria es justamente el ordenamiento para una rapida busqueda
Si es necesario que se "ordenen" tal cual los agregaste puedes dejar la tabla sin llave primaria
o la segunda opcion crea un ID autoincremental como llave primaria y despues crea tu campo CLAVE y generale un indice para poder hacer consultas sobre la clave que es la que tu asignaras
quedaria asi
ID-----CLAVE-----CampoX
1 ----- 3 ----- ABC
2 ----- 5 ----- XYZ
3 ----- 1 ----- MNO

Saludos
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #4 (permalink)  
Antiguo 28/05/2009, 09:29
 
Fecha de Ingreso: septiembre-2007
Mensajes: 122
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Ordenamiento de filas

Ahora me surge otra duda: Quisiera saber como crear una columna de autoincrement nueva y agregarla a mi tabla existente con los números del 1 a la última fila.

Gracias por sus aportes
  #5 (permalink)  
Antiguo 28/05/2009, 10:26
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Ordenamiento de filas

Consulta el manual de Alter table para agregar la columna

despues con un ciclo actualiza los registros para crear un consecutivo

cuando termine de actualizar borra la llave primaria que tenias y declara tu campo nuevo como llave y cambialo a autoincrement

si no sigues los pasos, lo mas seguro es que te maque errores con las primary key y/o key duplicadas...

Saludo
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #6 (permalink)  
Antiguo 28/05/2009, 11:11
 
Fecha de Ingreso: septiembre-2007
Mensajes: 122
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Ordenamiento de filas

Lo que necesito saber es como hacer el ciclo para llenar las filas del 1 al n...

Gracias
  #7 (permalink)  
Antiguo 28/05/2009, 11:19
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Ordenamiento de filas

hay 3 formas

a mano, cambiando uno por uno
por mysql, investiga sobre lenguaje transact
programacion, realiza un select y has un barrido seccuencial y actualizada cada registro

suerte
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #8 (permalink)  
Antiguo 28/05/2009, 11:43
 
Fecha de Ingreso: septiembre-2007
Mensajes: 122
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Ordenamiento de filas

Por casualidad tienes un ejemplo???

Gracias.
  #9 (permalink)  
Antiguo 28/05/2009, 19:47
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, 5 meses
Puntos: 2658
Respuesta: Ordenamiento de filas

Cita:
Iniciado por lobozaga Ver Mensaje
Ahora me surge otra duda: Quisiera saber como crear una columna de autoincrement nueva y agregarla a mi tabla existente con los números del 1 a la última fila.

Gracias por sus aportes
Si ya tienes un campo auto_increment, no se puede. MySQL admite sólo uno por tabla y es SIEMPRE la PK.
Si no tienes ningún campo auto_increment, simplemente usas ALTER TABLE y le agregas el cmapo (que debe estar siempre como primer campo en MySQL), El mismo MySQL los numerará automáticamente desde el 1.

Si ya tienes el campo, pero lo que quieres es visualizar una columna numerada de 1 en 1, pero sin modificar la tabla, se puede. Fíjate en las FAQ de MySQL, donde hace un tiempo postee cómo se hace.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
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 17:03.