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

UNION ALL y LIMIT en MySQL

Actualmente, MySQL realizará todas las selecciones en una unión incluso si hay suficientes filas en las primeras consultas, como mencionó @Yuki Inoue en su respuesta. Usando la respuesta de @user1477929, podría volver a escribir su consulta como:

(SELECT a FROM t1 WHERE a=10 AND B=1 LIMIT 1000) 
UNION ALL 
(SELECT a FROM t2 WHERE a=11 AND B=2 LIMIT 1000) 
UNION ALL 
(SELECT a FROM t3 WHERE a=12 AND B=3 LIMIT 1000) 
ORDER BY a LIMIT 1000;

que le dará como máximo 1000 filas y nunca escaneará más de 3000.