Mysql
 sql >> база данни >  >> RDS >> Mysql

CodeIgniter Active Record - групови оператори ИЛИ

Можете да го направите ръчно, както е посочено тук :

Колкото до въпроса ти:

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

В 3.0-dev :

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

актуализация

Вижте отговорите на този въпрос ако използвате CI 2.2. Изберете отговор, различен от приетия .

Или просто опитайте това :

$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. PHP Проверка за NULL

  2. Топ 10 интересни факта и съвети за MySQL

  3. MySQL коригира пропуските в автоматично нарастване в две таблици

  4. Mysql не стартира в докер контейнер на MacOS след актуализация на докер

  5. Най-добрият начин да направите претеглено търсене в множество полета в mysql?