所以我可以使用以下方法删除一行:
$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)));
...但它们都不起作用。我觉得这应该很容易。有什么答案吗?
所以我可以使用以下方法删除一行:
$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)));
...但它们都不起作用。我觉得这应该很容易。有什么答案吗?
你试过这个吗?
$names = array(4,5);
$this->db->where_in('id', $names);
$this->db->delete('mytable');
不需要关联数组。
$ids[] = 1;
$ids[] = 2;
$this->db->where_in( id, $ids );
$this->db->delete('Table_Name');
为其编写自定义查询
$this->db->query("DELETE FROM `TABLE_NAME` WHERE `id` IN(1,2,3,4,5)");
这是行不通的
$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')对每个id进行潜水
最好和最好的方法
//$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();
上面的查询将是工作享受............
To delete a single use row:
$this->db->delete('TABLE_NAME', array('id' => 5));
Have you tried doing this? I'm pretty sure it should work.
$this->db->delete('TABLE_NAME', array(array('id' => 5), array('id' => 3), ...));
这是一个老问题,但我会回答它,因为我必须在 8 年后研究同一个问题。
查了源码$wpdb->delete(),基本只会删除1行。它通过将 1 col 与 1 val 匹配,然后与 AND 连接来工作。因此,如果您这样做array("id"=>4,"id"=>5),它会将其读取为带有 (id==4 AND id==5) 的行。没有行会匹配该条件。
因此,要删除多行,唯一的方法(据我所知)是使用自定义查询:
$wpdb->query("DELETE FROM `TABLE_NAME` WHERE `id` IN(1,2,3,4,5)");