Mysql
 sql >> база данни >  >> RDS >> Mysql

Doctrine QueryBuilder изтриване с присъединявания

Може да е по-добре да стартирате заявка с условие IN, вместо да повтаряте.

$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();
  • Предимства:работи по-бързо, няма нужда от повторение
  • Недостатъци:не можете да се свържете с preRemove

Що се отнася до бурния дебат "къде да го сложа", осмелете се да го сложите в контролера, ако желаете. Това зависи изцяло от вас. Въпреки това, може да ви бъде по-полезно в бъдеще, ако поставите кода в специалното хранилище за доктрини. Трябва да е много лесно за изпълнение и да го прави лесен за промяна/поддръжка.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL избира максимален запис в група по

  2. Създайте MySQL потребител на Linux чрез командния ред

  3. Управление на разликите във форматите за дата между PHP и MySQL

  4. Премахнете клаузата за ограничение от MySQL Workbench

  5. Как да съпоставите MySQL JSON колона със свойство на Java обект, използвайки JPA и Hibernate