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

IN句を使用したSymfony2.3rawsqlクエリ

    回答:

    したがって、少なくとも2つの間違いがあります。 1つ目は、@Alaridが言ったことです。配列を内包してはいけません。 2つ目は、DoctrineDBALTypes Conversionを使用する必要があることです。 IN clauseの場合 プリペアドステートメントを実行するとき。

    そして最後に、クエリは次のようになります:

    $stmt = $this->getDoctrine()->getEntityManager()
            ->getConnection()
            ->prepare('SELECT t1.id , t1.name , t2.start_date , t2.end_date
            FROM table1 t1 , table2 t2
            WHERE t1.id = t2.matchId AND  t1.id IN (:ids)');
    
    $stmt->bindValue('ids', $idSArray, \Doctrine\DBAL\Connection::PARAM_INT_ARRAY);
    $stmt->execute();
    

    または代替:

    $stmt = $this->getDoctrine()->getEntityManager()
        ->getConnection()
        ->executeQuery('SELECT t1.id , t1.name , t2.start_date , t2.end_date
            FROM table1 t1 , table2 t2
            WHERE t1.id = t2.matchId AND  t1.id IN (:ids)',
            array('ids' => $idSArray),
            array('ids' => \Doctrine\DBAL\Connection::PARAM_INT_ARRAY)
        )
    ;
    


    1. SQL Server 2008 で XML 列をどのように読むのですか?

    2. Dapper を SQL 空間型と共にパラメーターとして使用する

    3. mysqlデータベースをDartに接続する方法は?

    4. T-SQLを使用してSQLServerでデータベースの互換性レベルを確認する方法