Cita:
Iniciado por superweb360
Código SQL:
Ver originalSELECT *
FROM tbl_banners
WHERE id = 1
UNION
SELECT *
FROM tbl_banners
WHERE id <> 1
ORDER BY RAND()
La idea básica es esa, pero esa query no dejaría necesariamente el primer registro encontrado en el primer lugar,
ya que el ORDER BY, como los GROUP BY que se pudiesen poner, aplican sobre el restultado total, lo que modificaría la tabla obtenida.
Para que fucione correctamente, tal como
superweb360 propone, en realidad hay que transformar la segunda en una tabla derivada, y además usar UNION ALL, para evitar ordenamientos implicitos:
Código SQL:
Ver originalSELECT *
FROM tbl_banners
WHERE id = 1
UNION ALL
SELECT *
FROM
(SELECT *
FROM tbl_banners
WHERE id <> 1
ORDER BY RAND()) T1;