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;