Tema: Ordenar
Ver Mensaje Individual
  #11 (permalink)  
Antiguo 03/12/2013, 08:40
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

Cita:
Iniciado por JeMaGa Ver Mensaje
Bueno intente hacer lo de separar los campos y es un proceso canson hay mas de 10000 registros en mas de una tabla ponerme a cambiar el numero a todos es muy complicado, puede que no sea la mejor forma y puede que no funcione completamente pero como puedo organizar el numero como lo tengo ascendente mente que despues del 9999 siga el 10000 y de hay para abajo

Gracias por la colaboracion
Eso ya te lo expliqué.
Código SQL:
Ver original
  1. SELECT a, b, c, d
  2. FROM tabla
  3. ORDER BY CAST(SUBSTRING_INDEX(campo, '-', -1) AS UNSIGNED), CAST(SUBSTRING_INDEX(campo, '-', 1) AS UNSIGNED);
¿Qué parte no se entiende?

De hecho, si realmente quieres modificar tu tabla, la cosa es simple, podrías perfectamente hacer lo siguiente:

Código SQL:
Ver original
  1. ALTER TABLE tabla ADD COLUMN anio SMALLINT UNSIGNED;
  2.  
  3. ALTER TABLE tabla ADD COLUMN anio_item MEDIUMINT UNSIGNED;
  4.  
  5. UPDATE tabla
  6. SET anio = CAST(SUBSTRING_INDEX(campo, '-', 1) AS UNSIGNED),
  7. anio_item = CAST(SUBSTRING_INDEX(campo, '-', -1) AS UNSIGNED);
  8.  
  9. ALTER TABLE tabla DROP COLUMN campo;
  10.  
  11. SELECT CONCAT(anio, '-', adion_item) codigo, a, b, c, d
  12. FROM tabla
  13. ORDER BY anio, anio_id;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 03/12/2013 a las 09:24