2009-08-26 44 views
1

有没有什么办法可以运行以下“逻辑代码”来实际工作?在where子句中指定多个项目

$sql=mysql_query("DELETE FROM users WHERE id='3,4,5,9'"); 

我基本上是想给我的用户勾选框打勾所有的显示行,他们可以再挑去除哪些。我只想删除指定了id的多行记录?

任何想法?

回答

5

什么:

$sql=mysql_query("DELETE FROM users WHERE id IN (3, 4, 5, 9)"); 

提供:

  • 你的ID是数字在要删除用户3,并删除DB
  • 用户4,删除用户5,删除用户9

,当然,如果你的IDS是字符串:

$sql=mysql_query("DELETE FROM users WHERE id IN ('3', '4', '5', '9')"); 

欲了解更多信息,请参见:

+0

IN()的参数不一定是数字。他们只需要价值。 – 2009-08-26 22:05:55

+1

@Bill:我的意思是“不要使用引号如果数字,因为那些将不需要 - 我已经编辑我的帖子添加相同的示例考虑ID是字符串,希望它会让我的话更清晰) – 2009-08-26 22:07:08

+0

是的,谢谢你的澄清,我已经给你+1了。:-) – 2009-08-26 23:01:52

13

您可以使用IN运算符。

DELETE ... WHERE id IN (3,4,5,9) 
2

您可以使用in而不是=

例如,

DELETE FROM users WHERE id IN (3,4,5,9); 
3

使用WHERE IN子句。

DELETE FROM users WHERE id IN (3, 4, 5, 9); 
2

您是否尝试过使用IN

DELETE FROM users WHERE id IN (3,4,5,9) 

虽然在我的应用我从来没有删除任何东西。相反,我有一个活动标志,我将其设置为false。

UPDATE users set active=0 where id in (3,4,5,9) 

所有查询然后有一个where子句active=1和1是用于在表中的有效标志的默认值。

2
$sql=mysql_query("DELETE * FROM table WHERE id IN (3,4,5,9)");