2011-09-22 25 views

回答

-2

這不是活動記錄的目標做出來。如名稱所示,活動記錄對象實例綁定到表中的單個行。如果你想以「主動記錄」的方式來完成這個工作,你必須檢索你必須刪除數據庫的所有記錄,將它們標記爲已刪除,並且提交更改將會過度。你可以做的最好的辦法是從codeign中獲取連接實例並手動執行查詢。

+2

假。您可以使用活動記錄刪除多行。 – Catfish

+0

您可以使用「當前」實現刪除多條記錄,但活動記錄不是爲此設計的。仍然最好的解決方案是不使用活動記錄。 – Ivan

+0

但是活動記錄允許您選擇多於一行。你認爲這不是它應該如何? – Catfish

0

試試這個:

$this->db->where('col1', $value1); 
$this->db->where('col2', $value2); 
$this->db->delete($table); 
+0

爲什麼downvote? – Catfish

+0

錯誤的回答花花公子 – confucius

+0

然後解釋它有什麼問題嗎?你甚至嘗試過嗎?根據你的問題,你的OR每一側的where子句都是完全相同的。 – Catfish

1

笨活動記錄是不切實際的混合和的和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

這是你最好的選擇,就像第二個想法非常好。 – Louis