Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zoptymalizuj iterację przez tablicę za pomocą pętli foreach

Musisz tylko wykonać dobre zapytanie MySQL.

Zobacz tutaj .

Możesz robić dodawanie, odejmowanie i takie rzeczy jak date BETWEEN x AND Y , możesz wykonać SELECT SUM() z GROUP BY i tak dalej.

Hakan ma na myśli (chyba) to, że robisz to w niewłaściwy sposób:powinieneś najpierw wykonać zapytanie, które wykona prawie całą pracę za ciebie. Nie ma potrzeby opracowywania tak skomplikowanych rzeczy.

I trzy inne rady:

  • staraj się unikać słów kluczowych w PHP, takich jak $expense->Date . To sprawia, że ​​problemy z podświetlaniem składni są najlepsze przypadku, w najgorszym PHP nie zrozumie Twojego kodu).
  • dodaj więcej komentarzy w swoim kodzie, aby wyjaśnić, co próbujesz zrobić.
  • staraj się unikać słów kluczowych w PHP ORAZ Zapytania SQL. Masz kolumnę o nazwie „Date ' i kolumnę o nazwie 'Type „. To nie jest bezpieczne.

Oto tylko początek tego, jak może wyglądać Twój SQL i powinien on obejmować prawie 95% Twojego kodu. Uwaga:to jest sugestia:pozwól, aby cały serwer bazy danych wykonał tę pracę za Ciebie, to jest do tego stworzone:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Null EntityManager przy użyciu @PersistenceContext

  2. Mysql automatycznie zwiększa kolumnę o jeden określony klucz podstawowy

  3. Uzyskaj rekordy miesięcznie, ale uzyskaj również zero, jeśli nie ma rekordów w tym miesiącu

  4. Znaki specjalne ucieczki MySQL w Pythonie

  5. Jaki jest rozmiar pamięci BIT(1)?