sql >> Databáze >  >> RDS >> Mysql

UNION ALL a LIMIT v MySQL

V současné době bude MySQL provádět všechny výběry na sjednocení, i když je v prvních několika dotazech dostatek řádků, jak ve své odpovědi zmínil @Yuki Inoue. Pomocí odpovědi @user1477929 můžete svůj dotaz přepsat jako:

(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;

což vám dá maximálně 1000 řádků a nikdy nenaskenujte více než 3000.



  1. Dopad události query_post_execution_showplan Extended v SQL Server 2012

  2. GROUP BY bez agregační funkce

  3. Volání funkcí MySQL v Lithiu

  4. Pomalý dotaz:najděte rozdíl mezi hodnotami na základě min a max v jiném sloupci pro každou skupinu