SQL

EnZo

Me gustaria hacer una consulta un poco rara jeje

[USERS]

nick
sexo
edad

registrado

SELECT nick,sexo,edad FROM users ORDER BY registrado DESC

Hasta ahi bien, como podria hacer para que se alternara los resultados, es decir supongamos que me devuelve esto:

Javi - 1 - 19
Pepe - 1 - 18
Ana - 2 - 25
Sonia - 2 - 34
Elena - 2 - 24
Jose - 1 - 19

Pues quisiera que saliera chico chica chico chica osea asi:

Javi - 1 - 19
Ana - 2 - 25
Pepe - 1 - 18
Sonia - 2 - 34
Jose - 1 - 19
Elena - 2 - 24

Alternado por el campo sexo.
Eso es posible?

Deathtime

Yo eso no lo he visto nunca hecho, y tampoco le veo la utilidad que pudiera tener, aparte que eso en aplicaciones reales no te dejan ponerlo ( por el tema de discriminaciones, y encima esta castigado xD).

A lo mejor si que hay alguna palabra clave para intercalar filas de una sentencia sql que tu elijas. Pero a lo mejor no lo soportan todas las BBDD.

Lo mas parecido que hay es el UNION, pero no intercala filas.

B

lo de hacer esto sólo con sql tiene su morbo freak, pero no te sirve hacer dos consultas independientes e intercalar los resultados con programación?

  • SELECT nick,sexo,edad FROM users WHERE sexo=1 ORDER BY registrado DESC
  • SELECT nick,sexo,edad FROM users WHERE sexo=2 ORDER BY registrado DESC

si te preocupa la velocidad, pon un index del campo sexo y esas dos consultas se ejecutarán flechadas.

Usuarios habituales