sql >> Databasteknik >  >> RDS >> Mysql

UNION ALL och LIMIT i MySQL

För närvarande kommer MySQL att utföra alla val på en union även om det finns tillräckligt många rader i de första frågorna, som @Yuki Inoue nämnde i sitt svar. Med hjälp av @user1477929s svar kan du skriva om din fråga som:

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

vilket ger dig högst 1 000 rader och aldrig skanna fler än 3 000.



  1. Hur man gör en accentkänslig sökning i MySql

  2. MySQL Stored Procedure Design Problem. Rekussion eller hierarki?

  3. Hur man strängformaterar SQL IN-sats med Python

  4. Databas endast backuper i WHM