Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để chuyển đổi câu lệnh MySQL này sang symfony Propel?

Propel không có tiêu chuẩn cách thực hiện truy vấn con như một phần của tiêu chí.

Bạn có thể tách truy vấn của mình (lấy giá trị bạn muốn so sánh với trước rồi sử dụng nó vào truy vấn ban đầu) hoặc sử dụng CUSTOM tiêu chí với truy vấn con trong truy vấn đẩy của bạn.

Đây là một ví dụ về tùy chọn thứ hai:

$c = new Criteria();

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

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

CHỈNH SỬA: Đây là một ví dụ về tùy chọn đầu tiên

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

Vấn đề duy nhất với tùy chọn này là bạn đang thực hiện hai truy vấn thay vì một, điều này có thể ảnh hưởng đến hiệu suất của bạn, nhưng nó phụ thuộc vào ứng dụng của bạn.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cột json so với nhiều cột

  2. Lỗi khi sử dụng CHÈN VÀO bảng TRÊN KHÓA DUPLICATE, sử dụng mảng vòng lặp for

  3. Kết nối động Laravel với các cơ sở dữ liệu khác nhau cùng một lúc

  4. Cách tốt nhất để lưu trữ dữ liệu nhạy cảm trong MySQL là gì?

  5. Hiểu thống kê HAProxy cho MySQL &PostgreSQL