Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

el NULL va primero en un order by???

Estas en el tema de el NULL va primero en un order by??? en el foro de Mysql en Foros del Web. hola una pregunta, cuando tengo varios registros, supongamos 10 y tienen 3 campos TABLA NOMBRES id | nombre | apellido .-----------------------------------.... tengo varios registros , ...
  #1 (permalink)  
Antiguo 03/04/2013, 20:17
 
Fecha de Ingreso: febrero-2013
Ubicación: en mi casa
Mensajes: 541
Antigüedad: 11 años, 1 mes
Puntos: 3
el NULL va primero en un order by???

hola una pregunta, cuando tengo varios registros, supongamos 10 y tienen 3 campos


TABLA NOMBRES

id | nombre | apellido
.-----------------------------------....


tengo varios registros , ninguno tiene un campo null, NINGUNO.

PERO APARTE DE LOS 10 AGREGO UNO CON UN CAMPO null, Y ESTA EN EL CAMPO DE APELLIDO....

que pasa si quiero que por ORDER BY, ordenado por APELLIDO, salgan los registros,
y el primer registro, (en teoria, ordenado por apellido)

sea este registro

id= vacio , es incrementable
nombre=forosdelweb
apellido=NULL,


si hago

select * from NOMBRES order by apellido

bien, sale primero el campo de foros del web, aunque hice un order by apellido..
esto pasa en todas las tablas?? en todos los sql? mysql, sqlserver, gestores de base de datos?,

es normal que tome el campo NULL, por prioridad, sobre ordenar por campos con texto??

Última edición por aldo_rengo; 03/04/2013 a las 20:23
  #2 (permalink)  
Antiguo 03/04/2013, 20:24
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: el NULL va primero en un order by???

No. NULL no es un dato, por lo que no se puede ordenar por él, pero por convención MySQL los lista primero.
No es exactamente que los "ordene" en esa forma... Es un modo adoptado (según indica el manual).
Aparentemente se asume como si fuese un vacío (que no es), y como el espacio vacío sí está primero en el orden de caracteres ASCII...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 04/04/2013, 03:52
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: el NULL va primero en un order by???

Código MySQL:
Ver original
  1. ...
  2. ORDER BY IF(apellido IS NULL,1,0),apellido;

Esto invertirá la convención que te comenta gnzsoloyo.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #4 (permalink)  
Antiguo 04/04/2013, 04:17
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: el NULL va primero en un order by???



..Astuto...

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: campo, null, order, primero, registros, select, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:15.