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

Как да направите заявка към тази MySQL таблица по най-ефективния начин?

Ще трябва да направите пълно сканиране на таблицата, така че това е може би най-доброто решение:

select (case when id in (< your list >) then 'in' else 'out' end) as inlist,
       my_boolean_field, count(*)
from mytable t
group by (case when id in (< your list >) then 'in' else out' end),
         my_boolean_field;

Ако списъкът ви е в таблица с индекс, тогава можете да използвате left join върху него. Въпреки това MySQL оптимизира търсенията за in с постоянни стойности (използва двоично търсене). Така че това вероятно ще бъде най-бързият метод.




  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 2006:mysql сървърът е изчезнал

  2. SQL за подреждане на буквено-цифров низ по числовата част

  3. Най-добрият начин да премахнете стойност от полето SET?

  4. Каква е разликата между операторите <> и !=в MySQL?

  5. Най-добри практики в PHP и MySQL с международни низове