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

CodeIgniter Active Record - Nhóm câu lệnh OR

Bạn có thể làm điều đó theo cách thủ công như đã nêu tại đây :

Đối với câu hỏi của bạn:

$this->db->where("category = 1 AND (category = 2 OR category = 3)");

Trong 3.0-dev :

$this->db->select()
->group_start()
->or_like([ 'category' => 2, 'category' => 3 ])
->group_end()                
->where([ 'category' => 1 ]);

cập nhật

Xem câu trả lời trên câu hỏi này nếu bạn đang sử dụng CI 2.2. Chọn một câu trả lời khác với câu được chấp nhận .

Hoặc chỉ cần thử cái này :

$categories = array(2, 3);

array_walk($categories, function(&$cat) { $cat = 'category = ' . $cat; });

$catstring  = implode(" OR ", $categories);
$where      = "category = 1 AND ($catstring)";
// => category = 1 AND (category = 2 OR category = 3)

$this->db->where($where);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. thứ tự này là gì của 1?

  2. # 1075 - Định nghĩa bảng không chính xác; chỉ có thể có một cột tự động và nó phải được xác định là một khóa

  3. com.mysql.jdbc.PacketTooBigException

  4. nhập dữ liệu hàng loạt vào MySQL

  5. Truy vấn MySQL rất chậm trên dữ liệu lớn