codeigniter ActiveRecord, где выписка оператора - PullRequest
0 голосов
/ 22 сентября 2011

есть это утверждение, и я хочу сделать это способом Active Records в codeigniter

DELETE FROM TABLE 
(col1 = value AND col2 = value2 ) OR (col1 = value2 AND col2 = value );

Ответы [ 3 ]

1 голос
/ 23 сентября 2011

CodeIgniter Active Record является непрактичным для смешивания AND и OR в запросе.

Скорее всего, вам придется составить часть запроса вручную, например, что-то вроде:

$this->db->where("col1 = $value AND col2 = $value2");
$this->db->or_where("col1 = $value2 AND col2 = $value");

Альтернативно, в вашем примере, где есть только два конкретных столбца и два значения, следующая идея также должна работать:

$this->db->where_in('col1', array($value, $value2));
$this->db->where_in('col2', array($value, $value2));
$this->db->where('col1 != col2');
0 голосов
/ 22 сентября 2011

Попробуйте это:

$this->db->where('col1', $value1);
$this->db->where('col2', $value2);
$this->db->delete($table);
0 голосов
/ 22 сентября 2011

Это не цель активной записи.Как следует из названия, экземпляр объекта активной записи привязан к одной строке таблицы.Если вы хотите сделать это «активным способом записи», вам нужно извлечь все записи, которые вы должны удалить из базы данных, пометить их как удаленные и зафиксировать изменения, которые излишни.Лучшее, что вы можете сделать, это получить экземпляр соединения из codeignither и выполнить запрос вручную.

...