Mysql
 sql >> база данни >  >> RDS >> Mysql

UNION ALL и LIMIT в MySQL

Понастоящем MySQL ще извърши всички селекции на обединение, дори ако има достатъчно редове в първите няколко заявки, както @Yuki Inoue спомена в отговора си. Използвайки отговора на @user1477929, можете да пренапишете заявката си като:

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

което ще ви даде най-много 1000 реда и никога не сканира повече от 3000.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL сортиране със символи като първа буква

  2. LIKE и % заместващ знак в findBy*() на Doctrine

  3. Как да актуализирам полето, за да добавим стойност към съществуващата стойност?

  4. mysql заявка за динамично конвертиране на данни от редове в колони

  5. изтриване * от таблицата не работи