Mysql
 sql >> база данни >  >> RDS >> Mysql

Doctrine 2 mysql FIELD функция в ред по

Джеръми Хикс, благодаря за вашето разширение .Не знаех как да свържа вашата функция с доктрина, но най-накрая намерих отговор.

$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 израз в доктрина 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. Как да импортирам CSV файл в MySQL таблица?

  2. 4 начина за проверка на типа данни на колона в MySQL

  3. SQL:Какво е по подразбиране Подреждане по на заявките?

  4. MySQL Неправилна стойност за дата и час:'0000-00-00 00:00:00'

  5. Инсталиране на WordPress 5 на ZEIT сега с MySQL хостинг