sql >> Base de Datos >  >> RDS >> Mysql

ORDEN POR condición

UNIÓN significa UNION DISTINCT y esto es relativamente lento ya que buscará duplicados aunque no haya ninguno. Quieres UNIR TODOS:

SELECT *, 0 AS head FROM foo WHERE id IN (1,2,3) 
UNION ALL
SELECT *, 1 AS head FROM foo WHERE id NOT IN (1,2,3)
ORDER BY head, created_date

Me imagino que después de este cambio no hay mucha diferencia en el rendimiento entre las tres consultas. La mejor manera de estar seguro es medirlo.