sql >> Databáze >  >> RDS >> Mysql

MySQL Join na základě indexování YEAR () – přidání sloupce nebo vygenerovaný sloupec

Můžete zkusit toto:

FROM workdone
LEFT JOIN staffcost ON workdone.date >= MAKEDATE(staffcost.costyear, 1)
                   AND workdone.date <  MAKEDATE(staffcost.costyear+1, 1)

To umožní použití indexu na workdone.date k vyhledání dat mezi prvním dnem costyear až do prvního dne costyear+1, nikoli však včetně .

Obecně platí, že tento druh hledání rozsahu může využívat indexy, kde funkce (jako YEAR(datestamp) ) nemůže.



  1. Minimální a maximální hodnoty Mysql a odpovídající datum pro každý měsíc

  2. Jak získat velikosti tabulek databáze MySQL?

  3. Mysql sjednocovací dotaz duplicitní řádky

  4. Jaký je typ čekání ASYNC NETWORK IO?