2012-05-08 4 views
13

Так что я могу удалить одну строку с помощью:Как удалить несколько строк?

$this->db->delete($tableName,array("id"=>4)); 

... но я не могу понять, как удалить несколько строк. Я пробовал:

$this->db->delete($tableName,array("id"=>4,"id"=5)); 

, а также:

$this->db->delete($tableName,array(array("id"=>4),array("id"=5))); 

... но они оба не работают. Я чувствую, что это должно быть довольно легко. Есть ответы?

ответ

32

пробовали ли вы это?

$names = array(4,5); 
$this->db->where_in('id', $names); 
$this->db->delete('mytable'); 
+0

приветствуется –

+1

Как удалить несколько записей с условием удаления в нескольких столбцах, например delete from tbl где col1 = 1 AND col2 = 2; У меня это условие в многомерном массиве –

+0

отличная находка. !! это не было документировано в документах CI. Работает как шарм –

0

Для удаления одноразового использования строки:

$this->db->delete('TABLE_NAME', array('id' => 5)); 

вы пробовали это делать? Я уверен, что это сработает.

$this->db->delete('TABLE_NAME', array(array('id' => 5), array('id' => 3), ...)); 
+0

Я попробовал то, что вы предложили, но только что получил ошибку. – Joe

3

записи пользовательских запросов для его

$this->db->query("DELETE FROM `TABLE_NAME` WHERE `id` IN(1,2,3,4,5)"); 
+0

Похоже, что это должно работать, так как это ручная версия ответа @ MoyedAnsari, в которой используется функция where_in CI. Благодарю. – Joe

6

не требуется ассоциативный массив.

$ids[] = 1; 
$ids[] = 2; 

$this->db->where_in(id, $ids); 
$this->db->delete('Table_Name'); 
1

он не работает

$names = array(4,5); 
$this->db->where_in('id', $names); 
$this->db->delete('mytable'); 

DELETE FROM table_name WHERE id IN ('4,5') 

уведомление одна вещь не один строковой/цифру («4,5») мы должны ныряли каждый идентификатор с одной цитаты, как это («4» , '5')

Самый лучший и хороший способ

 //$ids = 1,2,3..... 
     $ids_exp = explode(',',$ids); 
     $this->db->where_in('id',$ids_exp);// 
     $this->db->delete('table_name') 
     return $this->db->affected_rows(); 

выше запрос будет работать наслаждаться ..........

+0

зачем возвращать всегда 1 при использовании return $ this-> db-> affected_rows(); –

Смежные вопросы