Cita:
Iniciado por JeMaGa
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 originalSELECT a, b, c, d
FROM tabla
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 originalALTER TABLE tabla ADD COLUMN anio SMALLINT UNSIGNED;
ALTER TABLE tabla ADD COLUMN anio_item MEDIUMINT UNSIGNED;
UPDATE tabla
SET anio = CAST(SUBSTRING_INDEX(campo, '-', 1) AS UNSIGNED),
anio_item = CAST(SUBSTRING_INDEX(campo, '-', -1) AS UNSIGNED);
ALTER TABLE tabla DROP COLUMN campo;
SELECT CONCAT(anio, '-', adion_item) codigo, a, b, c, d
FROM tabla
ORDER BY anio, anio_id;