Consulta SQL para ordenar username de menor para maior

  • Autor Autor tavitooo
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
tavitooo

tavitooo

Eta
Verificado
Verificación en dos pasos activada
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 edição:
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
Están bien ordenados (alfabéticamente), deberías separar el string en su parte alfabética y numérica


Inserir CODE, HTML ou 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
 
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
 
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
 
Prueba la sentencia:

SELECT username FROM login ORDER BY CAST(SUBSTR(username, 4) AS INT);
 
Están bien ordenados (alfabéticamente), deberías separar el string en su parte alfabética y numérica


Inserir CODE, HTML ou 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.webp
 
SELECT username FROM login ORDER BY SUBSTR(username, 1, 3), CAST(SUBSTR(username, 4) AS INT);
 
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!!.
 
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...
 
Voltar
Topo