Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara mengubah pernyataan MySQL ini menjadi symfony Propel?

Propel tidak memiliki standar cara melakukan subkueri sebagai bagian dari kriteria.

Anda dapat memisahkan kueri Anda (mendapatkan nilai yang ingin Anda bandingkan terlebih dahulu dan kemudian menggunakannya ke dalam kueri asli) atau menggunakan CUSTOM kriteria dengan subquery Anda dalam kueri propel Anda.

Berikut ini contoh opsi kedua:

$c = new Criteria();

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

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

EDIT: Berikut ini contoh opsi pertama

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

Satu-satunya masalah dengan opsi ini adalah Anda membuat dua kueri alih-alih satu, yang mungkin berdampak pada kinerja Anda, tetapi tentu saja itu tergantung pada aplikasi Anda.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pengindeksan MySQL dan Menggunakan filesort

  2. PHP-MySQL-Bagaimana cara meningkatkan bidang integer MySQL dengan aman?

  3. Haruskah kunci utama tabel MySQL diekspos?

  4. php mengembalikan properti yang tidak ditentukan

  5. Sekuel Temukan milik Asosiasi Banyak