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

Laravel 5.4 Truy vấn tham gia thô

Bạn có thể sử dụng callback để tạo truy vấn nối phức tạp hơn.

->leftJoin(TBL_CAT, function($query){
     $query->on(TBL_CAT.'id', '=', 'p.cat_id')->where("**", "**", "**");
})

Đây là liên kết trên laravel doc - https://laravel.com/docs/5.4/queries# tham gia Phần "Điều khoản tham gia nâng cao".

UPD ::Như đã đề cập trong bình luận, không phải là ý kiến ​​hay nếu có chuỗi cho các loại dữ liệu như vậy. Tìm kiếm nguyên nhân theo đẳng thức sẽ đơn giản hơn nhiều so với kiểm tra chuỗi. Ngay cả khi lượng dữ liệu của bạn không có sự khác biệt lớn, bạn sẽ không bao giờ biết điều gì sẽ xảy ra với ứng dụng của mình trong tương lai.

Nhưng nếu bạn vẫn muốn làm điều đó, tôi nghĩ bạn có thể thử như thế này

->leftJoin(TBL_CAT, function($query){
     $query->where(DB::raw("FIND_IN_SET(".TBL_CAT.".id, p.cat_id)"), "<>", "0");
})

Tham gia đó sẽ kiểm tra sự tồn tại của id trong cat_id.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lỗi kết nối với cơ sở dữ liệu:(sử dụng lớp org.gjt.mm.mysql.Driver) Câu lệnh (1) không có con trỏ mở

  2. php do while sẽ không hoạt động với next-> rowet

  3. Tại sao ứng dụng C # của tôi vẫn truy xuất dữ liệu từ MySql mà không sử dụng kết nối.

  4. MySQL - GROUP BY làm chậm trang

  5. Truy vấn lồng nhau SQL chậm khi sử dụng IN