sql >> データベース >  >> RDS >> Mysql

DoctrineQueryBuilderは結合で削除します

    繰り返すよりも、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. Ubuntu 10.10(Maverick)でphpMyAdminを使用してMySQLを管理する

    2. MySQLとVisualStudioC#の接続

    3. Node.jsを使用したMySQL

    4. mysqlを使用してPDOでONDUPLICATEKEY UPDATEを使用するにはどうすればよいですか?