2011-10-27 65 views
0

我有一張如下所示的表;查找未列在數組數組中的SQL表中的ID號

id  header 
1  fruit 
4  header_example 
9  test 
13  money 

我然後有一個數組,用於含有每個ID的,但我刪除一個。我現在例如,有一個數組,看起來像這樣:

array = [1, 9, 13] 

我怎麼會看那個陣列,並確定與ID = 4的行應該被刪除?

謝謝!

+0

你可以掛鉤刪除數組元素,並簡單地記住你拔出哪個ID?列出的解決方案工作得很好,但成千上萬的ID變得繁瑣,並且可能會超過「值列表」限制,並帶有數以萬計的ID。 – pilcrow

+0

@pilcrow在我的情況下,我只會有4個數組元素來看待。 – mriksman

回答

2

在MySQL的一面,你可以只運行它,使用PHP來輸出數組內容到IN子句:

DELETE FROM table WHERE id NOT IN (<array contents>) 

在PHP端,你可以生成相應內容:

' . implode(', ', $arr) . ' 
+0

謝謝!這工作完美。 – mriksman

2
$arr = array(1, 9, 11); 
$query = 'DELETE FROM tbl WHERE id NOT IN (' . implode(', ', $arr) . ')'; 
mysql_query($query); 
2
$sql = 'DELETE FROM table WHERE id not in ('.implode(',', $array).')';