Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Doctrine 2 mysql FIELD funkcja w kolejności według

Jeremy Hicks, dziękuję za twoje rozszerzenie .Nie wiedziałem, jak połączyć twoją funkcję z doktryną, ale w końcu znalazłem odpowiedź.

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

Potrzebuję FIELD funkcja zamawiania moich jednostek, które wybieram przez IN wyrażenie. Ale możesz użyć tej funkcji tylko w SELECT, WHERE, BETWEEN klauzula, nie w ORDER BY .

Rozwiązanie:

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

Aby uniknąć dodawania field alias w wierszu wyników, musisz umieścić HIDDEN słowo kluczowe. Więc to jak móc zamawiać wartości w IN wyrażenie w Doctrine 2.2.



  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:Jak zezwolić na zdalne połączenie z mysql

  2. MySQL dodaje dni do daty

  3. Jak uzyskać najnowszy rekord w każdej grupie za pomocą GROUP BY?

  4. Przykłady UTC_DATE – MySQL

  5. Zrozumienie rozmiarów pamięci masowej dla typów danych MySQL TEXT