2011-10-27 26 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).')';