registros poner ordenar ordenacion ejemplos descendente como campo alfabeticamente mysql order

poner - Cómo ordenar 1,2,3 no 1, 10, 11, 12 en mySQL



ordenar un campo en mysql (6)

El siguiente código da como resultado 1, 10, 11, 12 de id.

Quiero hacerlo 1,2,3,4 ...

¿Alguien podría decirme qué debo hacer por favor?

$Q = $this->db->query(''SELECT P.*, C.Name AS CatName FROM products AS P LEFT JOIN categories C ON C.id = P.category_id'');

Gracias por adelantado.


Asegúrese de que la columna que contiene 1,2,3,4 sea de tipo INT ; si es TEXTO, no obtendrá un orden numérico, sino lo que describe 1, 10, 11, 2, 22, 23, 31, etc.

Y como mencionan otros, usa ORDER BY


Bueno, no estás configurando ninguna cláusula ORDER BY .


Como se mencionó anteriormente, MySQL no admite la ordenación alfanumérica. Un truco común para resolver esto es el primer orden por longitud:

ORDER BY LENGTH(column_name), column_name

Siempre que la parte no numérica del valor tenga la misma longitud, esto ordenará 1 antes de 10, 10 antes de 100, etc.


Primero, agregue una orden por cláusula al final:

ORDER BY category_id

Si category_id es una cadena, debe tratarlo como un entero. Hay algunas maneras de hacer esto. Normalmente agrego un cero. También puedes lanzarlo.

ORDER BY category_id + 0


Puedes hacer un reparto explícito haciendo:

ORDEN POR CAST (category_id COMO INTEGER NO FIRMADO)

Pero debe reconsiderar el diseño de su base de datos, ya que un campo que solo contiene valores numéricos también debe ser de tipo numérico.

Mis mejores deseos, fabian


Ordene trabajando solo para valores numéricos ( int ), no trabaje para varchar, char

Su category_id debe ser numérico, de lo contrario, debe convertir los valores a números.