sql >> Database teknologi >  >> RDS >> Mysql

Hvordan konverteres denne MySQL-sætning til symfony Propel?

Propel har ikke en standard måde at lave underforespørgsler på som en del af et kriterium.

Du kan enten adskille din forespørgsel (få den værdi, du vil sammenligne med først og derefter bruge den i den originale forespørgsel) eller bruge en CUSTOM kriterier med din underforespørgsel i din fremdriftsforespørgsel.

Her er et eksempel på den anden mulighed:

$c = new Criteria();

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

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

EDIT: Her er et eksempel på den første mulighed

// 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)

Det eneste problem med denne mulighed er, at du laver to forespørgsler i stedet for en, som kan ramme din præstation, men det afhænger selvfølgelig af din anvendelse.




  1. Hvordan kan jeg få procentdelen af ​​de samlede rækker med mysql for en gruppe?

  2. Hvorfor ingen vinduesfunktioner i where-klausuler?

  3. bash - SQL Query Output til variabel

  4. Opret en database i SQL Server 2017