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

Optimalizujte iteraci polem pomocí smyček foreach

Stačí udělat dobrý MySQL dotaz.

Viz zde .

Můžete provádět sčítání, odečítání a věci jako date BETWEEN x AND Y , můžete provést SELECT SUM() s GROUP BY a tak dále.

Co Hakan znamená (myslím), že to děláte špatně:měli byste nejprve udělat dotaz, který udělá téměř veškerou práci za vás. Není třeba vyvíjet tak složitou věc.

A další tři rady:

  • snažte se vyhnout klíčovým slovům v PHP jako $expense->Date . To způsobuje problémy se zvýrazňováním syntaxe (v nejlepším v nejhorším případě PHP vašemu kódu nerozumí).
  • přidejte do kódu další komentáře, které vysvětlí, co se snažíte udělat.
  • snažte se vyhnout klíčovým slovům v PHP A SQL dotazy. Máte sloupec s názvem 'Date a sloupec s názvem 'Type '. To není bezpečné.

Zde je jen začátek toho, jak by vaše SQL mohlo vypadat, a téměř by mělo pokrývat 95 % vašeho kódu. Poznámka:toto je návrh:nechte všechny databázové servery, aby to udělaly za vás, toto je pro to stvořeno:

SELECT
    ps.Due,ps.Date,
    wt.Amount,wt.Date,
    ex.Amount,ex.Date

LEFT JOIN patient_sessions ps
    ON xxx
    WHERE ps.Type='Session'
    AND ps.Date
        BETWEEN DATE_ADD(NOW(), INTERVAL '-28' DAY)
        AND     DATE_ADD(NOW(), INTERVAL 1 DAY)
LEFT JOIN work_times wt
    ON xxx
LEFT JOIN expenses ex
    ON xxx
    WHERE ex.Client='Psychotherapy'


  1. TIMEDIFF() vs SUBTIME() v MySQL:Jaký je rozdíl?

  2. Jak zálohovat databázi MySQL pomocí MySQL Workbench?

  3. Jak pracovat s PGpoint for Geolocation pomocí PostgreSQL?

  4. Zkontrolujte, zda v tabulce MySQL existuje sloupec pomocí PHP