Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Xóa Doctrine QueryBuilder với các phép nối

Có thể tốt hơn nếu chạy một truy vấn với điều kiện IN hơn là lặp lại.

$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();
  • Lợi ích:chạy nhanh hơn, không cần lặp lại
  • Hạn chế:bạn không thể tham gia preRemove

Như để tranh luận sôi nổi "đặt nó ở đâu", hãy dám đưa nó vào bộ điều khiển nếu bạn thích. Điều đó hoàn toàn tùy thuộc vào bạn. Tuy nhiên, nó có thể hữu ích hơn cho bạn trong tương lai nếu bạn đặt mã trong lớp kho lưu trữ học thuyết chuyên dụng. Nó sẽ rất dễ thực hiện và dễ dàng thay đổi / bảo trì.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cảnh báo:mysqli_query ():Không thể tìm nạp mysqli

  2. Cách xử lý cơ sở dữ liệu kế thừa trong khuôn khổ Django

  3. Sử dụng các công cụ lưu trữ MySQL khác nhau trong thiết kế cơ sở dữ liệu

  4. Vấn đề về ĐẶT HÀNG MYSQL THEO TRƯỜNG HỢP

  5. Làm thế nào để mysql sắp xếp các hàng có cùng giá trị?