Nueva pregunta

Pregunta:

Fecha: 24-02-2017 12:28:57 (En Español)

Ordenar tabla MySQL por columna que contiene cadenas combinadas de textos y numeros[Resuelta]

Buenas tardes grupo, espero alguien me pueda ayudar con este problema, no puedo ordenar mi tabla cuando el campo tiene letra y número.

Ejemplo de datos:
  AMA102
  AMA103
  AMA104
  AMA201
  AMA202
  AMA203
  AMA204
  AMA205
  AMA301
  AMA302
  AMA303
  AMA304
  AMA305
  AMA306
  AMB100
  AMA1000
Etiquetas: MySQL - MySQL Desarrollo - Pregunta - Query - SQL Votos: 0 - Respuestas: 4 - Vistas: 11 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 25-02-2017 02:50:14 Hola Juan, deberías poder ordenar tu tabla con la sentencia ORDER BY NOMBRE_COLUMNA, luego utilizando los modificadores ASC o DESC al final podrás ordenar de forma ascendente o descendente.

    Estimo que esto ya lo sabes, por lo que tal vez debas explicar un poco más cual es el orden esperado... y cual es el comportamiento que estas obteniendo.

    Por otro lado, debes tener presente que el ORDER BY se encuentra afectado por la COLLATE que has seleccionado al momento de modelar/crear la tabla. Yo por lo general utilizo: CHARACTER SET utf8 y COLLATE utf8_general_ci

    Saludos y buen código!
      Votos: 2 - Link respuesta
     
  • Fecha: 25-02-2017 08:12:49 Lo que sucede fernando es que mi campo tiene caracteres string y numerico es por ello q el order by no funiona , no me lo esta ordenando alguna vez te ha sucedido eso ferna , cuando ordenas letras si funciona , pero cuando es string con numerico me refiero a abc101   Votos: 0 - Link respuesta
     
  • Fecha: 25-02-2017 11:13:57 Que tipo de dato tienes asignado en el campo? VARCHAR, TEXT, Otro?, y qué COLLATE?

    Saludos!
      Votos: 2 - Link respuesta
     
  • Fecha: 26-02-2017 11:33:05 Como dice Fernando (en realidad, no lo dice pero lo intuyo), tendría que funcionar ya que AMA siempre va a estar antes de AMB, no importa que tengas después.

    El problema lo podés llegar a tener, seguramente con esto.
    AMA100
    AMA1000
    AMA200

    Si comparás caracter a caracter AMA1 es igual y cambia en AMA2, y así te lo ordena y lo que vos querés es que te lo ordene

    AMA100
    AMA200
    AMA1000

    Si son dos campos de texto (en un formulario) y concatenado para que quede el valor en un solo campo de la tabla, lo cambiaría por dos campos diferentes en la tabla y lo concatenaría al mostrarlo (función CONCAT de MySql) ordenándolo por los dos campos diferentes

    Habría que ver como se llega a ese valor con texto y nro concatenado

    Saludos

    DIEGO
      Votos: 3 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com