sql >> Databasteknik >  >> RDS >> Mysql

Hur frågar jag den här MySQL-tabellen på det mest effektiva sättet?

Du måste göra en genomsökning av hela tabellen, så det här är förmodligen den bästa lösningen:

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;

Om din lista finns i en tabell med ett index kan du använda en left join på det. MySQL optimerar dock sökningar efter in med konstanta värden (den använder en binär sökning). Så detta är sannolikt den snabbaste metoden.




  1. Hur man installerar ODP.NET 2.111 och ODP.NET 4.112 i samma maskin sida vid sida medan båda pekar på samma databasserver

  2. Neo4j - Importera data från en CSV-fil med hjälp av Cypher

  3. while($row =mysql_fetch_assoc($result)) - Hur går jag till $row?

  4. POWER() Exempel i SQL Server