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

Jak przekonwertować to polecenie MySQL do symfony Propel?

Propel nie ma standardu sposób wykonywania podzapytań w ramach kryteriów.

Możesz oddzielić zapytanie (uzyskać najpierw wartość, z którą chcesz porównać, a następnie użyć jej w oryginalnym zapytaniu) lub użyć CUSTOM kryteria z podzapytaniem w zapytaniu o napędzie.

Oto przykład drugiej opcji:

$c = new Criteria();

$subSelect = "cart.category > (
  SELECT cart.category
  FROM carts
  WHERE carts.id = 3)";

$c->add(CartPeer::CATEGORY, $subSelect, Criteria::CUSTOM);

EDYTUJ: Oto przykład pierwszej opcji

// find the object we want to compare against
$c = new Criteria();
$c->add(CartPeer::ID, 3); 
$cart = CartPeer::doSelectOne($c)

// then make the actual criteria
$c = new Criteria();
$c->add(CartPeer::CATEGORY, $cart->getCategory(), Criteria::GREATER_THAN)

Jedynym problemem związanym z tą opcją jest to, że wykonujesz dwa zapytania zamiast jednego, co może wpływać na wydajność, ale oczywiście zależy to od aplikacji.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dlaczego moja aplikacja internetowego interfejsu API platformy .NET nie łączy się z MySQL na platformie docker podczas korzystania z docker-compose?

  2. Śledzenie połączeń wychodzących

  3. zrozumienie mysql wyjaśnij

  4. Nie można usunąć tabeli:Ograniczenie klucza obcego nie działa

  5. Jak dodać serię ciągów w inkrementacji id w dowolnej tabeli?