Sentencia SQL que no ordena

tavitooo Seguir

Eta
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Desde
4 Jun 2013
Mensajes
1.304
Amigos buenas tengo esta simple consulta sql: select username from login order by username

Ordena a medias, es decir se incrustan los otros códigos que deberían de estar ordenados en otra posición, acá les adjunto la imagen.
Como hago para que se ordenen como debería de ser de menor a mayor?.
El campo username es varchar(50)

sql.jpg
 
Última edición:

jmdoren

Épsilon
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
31 May 2016
Mensajes
789
Están bien ordenados (alfabéticamente), deberías separar el string en su parte alfabética y numérica


Insertar CODE, HTML o PHP:
order by SUBSTR(username,0,3),  CAST SUBSTR(username,4) AS INT

no he probado el código pero por ahí va... ;)

si son muchas las filas en tu tabla podría ser mejor separar las partes en dos columnas y crear un indice compuesto por ambas
 

deom4901

Beta
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
14 Abr 2020
Mensajes
141
ocupas separar el numero del campo nombre para que te lo ordene correctamente, asi como esta todo en un solo campo varchar no te lo ordenara como quieres
 

tavitooo

Eta
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Desde
4 Jun 2013
Mensajes
1.304
ocupas separar el numero del campo nombre para que te lo ordene correctamente, asi como esta todo en un solo campo varchar no te lo ordenara como quieres
Disculpe me podria dar un ejemplo? no soy tan bueno con sql, por favor. gracias
 

rodolfo.uriarte

Beta
Verificación en dos pasos activada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
21 Ago 2019
Mensajes
75
Prueba la sentencia:

SELECT username FROM login ORDER BY CAST(SUBSTR(username, 4) AS INT);
 

tavitooo

Eta
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Desde
4 Jun 2013
Mensajes
1.304
Están bien ordenados (alfabéticamente), deberías separar el string en su parte alfabética y numérica


Insertar CODE, HTML o PHP:
order by SUBSTR(username,0,3),  CAST SUBSTR(username,4) AS INT

no he probado el código pero por ahí va... ;)

si son muchas las filas en tu tabla podría ser mejor separar las partes en dos columnas y crear un indice compuesto por ambas

Hola hice lo indicado pero me salen estos errores
sql2.jpg
 

rodolfo.uriarte

Beta
Verificación en dos pasos activada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
21 Ago 2019
Mensajes
75
SELECT username FROM login ORDER BY SUBSTR(username, 1, 3), CAST(SUBSTR(username, 4) AS INT);
 

tavitooo

Eta
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Desde
4 Jun 2013
Mensajes
1.304
SELECT username FROM login ORDER BY SUBSTR(username, 1, 3), CAST(SUBSTR(username, 4) AS INT);
Muchisimas gracias compañero con esa sentencia si funcionó voy a investigar que hace cada función. un abrazo gracias nuevamente. Dios te bendiga!!. Y gracias a todos tambien!!.
 

rodolfo.uriarte

Beta
Verificación en dos pasos activada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
21 Ago 2019
Mensajes
75
Excelente, que bueno que te fue de ayuda.

Si necesitas ayuda adicional con el diseño de la base de datos, me puedes contactar.

Saludos...
 

¡Regístrate y comienza a ganar!

Beneficios

  • Gana dinero por participar
  • Gana dinero por recomendarnos
  • Descubre ofertas de empleo diariamente
  • Negocios seguros
  • ¡Información premium y más!

Acceder

¿Ya tienes una cuenta? Accede aquí

Arriba