sql >> Databasteknik >  >> RDS >> Mysql

MySQL med InnoDB:Hur undviker man att använda COUNT?

Sätt dina villkor i en sum() . Så här får du enstaka räkningar

SELECT SUM(sourceItem = 1 AND destinationItem = 1) AS count1,
       SUM(sourceItem = 1 AND destinationItem = 2) AS count2
FROM trades

För att få den fullständiga villkorliga räkningen gör

SELECT SUM(case when sourceItem > 0 and destinationItem > 0 then 2
                when sourceItem > 0 or destinationItem > 0 then 1
                else 0 
           end) AS complete_sum
FROM trades

eller

SELECT SUM(sourceItem > 0) + sum(destinationItem > 0) AS complete_sum
FROM trades


  1. Relationsöversättningar finns inte efter migrering till Rails 3.2.1

  2. NLS_COLLATION_NAME() Funktion i Oracle

  3. hur kan vi ändra värdet med hjälp av radioknappar

  4. fetch_assoc returnerar senast infogade element