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

Doctrine 2mysqlFIELD関数を順番に

    Jeremy Hicks、拡張機能 。私はあなたの機能を教義に結びつける方法を知りませんでした、しかし最終的に私は答えを見つけます。

    $doctrineConfig = $this->em->getConfiguration();
    $doctrineConfig->addCustomStringFunction('FIELD', 'DoctrineExtensions\Query\Mysql\Field');
    

    FIELDが必要です INで選択したエンティティを注文する機能 表現。ただし、この関数はSELECT, WHERE, BETWEENでのみ使用できます。 ORDER BYではなく句 。

    解決策:

    $qb
                ->select("r, field(r.id, " . implode(", ", $ids) . ") as HIDDEN field")
                ->from("Entities\Round", "r")
                ->where($qb->expr()->in("r.id", $ids))
                ->orderBy("field");
    

    fieldの追加を避けるため 結果行にエイリアスを追加する必要がありますHIDDEN キーワード。したがって、この方法でINの値を並べ替えることができます Doctrine2.2での表現。



    1. 列内の個別の値の数を取得するにはどうすればよいですか?

    2. IDENTITY列が1つしかないテーブルに行を挿入する

    3. PostgreSQL:Unixエポックから現在までに変換する方法は?

    4. PentahoDataIntegrationおよびBAServerツールへのMicrosoftSQLServerJDBCドライバーのインストール