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

Usuwanie Doctrine QueryBuilder z połączeniami

Może być lepiej uruchomić zapytanie z warunkiem IN, niż iterować.

$ids = $this->createQueryBuilder('product')
->join('..your joins..')
->where('..your wheres..')
->select('product.id')
->getQuery()->getResult();

$this->createQueryBuilder('product')
    ->where('product.id in (:ids)')
    ->setParameter('ids', $ids)
    ->delete()
    ->getQuery()
    ->execute();
  • Korzyści:działa szybciej, nie trzeba powtarzać
  • Wady:nie można podłączyć do preRemove

Jeśli chodzi o gorącą debatę "gdzie to umieścić", odważcie się umieścić to w sterowniku, jeśli chcecie. To zależy wyłącznie od Ciebie. Jednak w przyszłości może być bardziej przydatne, jeśli wylądujesz kod w dedykowanej klasie repozytorium doktryn. Powinno to być bardzo łatwe do wykonania i ułatwiać zmianę / konserwację.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wykonać zapytanie o soundex() w mysql

  2. Ostrzeżenie:mysql_result() oczekuje, że parametr 1 będzie zasobem, podana wartość logiczna

  3. Laravel 5:synchronizacja dodatkowego pola za pomocą osi obrotu

  4. Wyłącz logowanie root w phpMyAdmin

  5. WEEKDAY() Przykłady – MySQL