sql >> Databasteknik >  >> RDS >> Mysql

MySQL Gå med baserat på YEAR () indexering - Kolumntillägg eller Genererad kolumn

Du kan prova detta:

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

Detta tillåter användning av ett index på workdone.date för att söka efter datum mellan den första dagen av costyear fram till men inte inklusive den första dagen av costyear+1 .

I allmänhet kan denna typ av intervallsökning utnyttja index där funktioner (som YEAR(datestamp) ) kan inte.



  1. Ingen mer data att läsa från uttaget fel

  2. Mysql formaterar en sträng som XXXXXXXXXXXX till XX-XX-XXXXXXX-X

  3. Ändra CakePHP-databaskonfiguration globalt

  4. Hur importerar man en stor MS SQL .sql-fil?