使用where和or删除

时间:2011-12-29 16:28:29

标签: php mysql

我有一个包含大量条目的数据库表[id,first,second,third],我希望在[first,second,third]为空时删除所有条目。

我可以使用WHEREOR吗?

这是我想要使用的代码。但是,它可能会显示一些错误:

$sql= "delete * from mytable where first='' or second='' or third=''";
mysql_query($sql) or die("query failed: $sql".mysql_error()); 

4 个答案:

答案 0 :(得分:3)

删除明星

$sql= "delete from mytable where first='' or second='' or third=''";

delete声明

您不需要这样做

答案 1 :(得分:3)

它是delete from,而不是delete * from

答案 2 :(得分:2)

您在此声明中不需要*

$sql= "delete from mytable where first='' or second='' or third=''";

答案 3 :(得分:2)

在尚未说过的内容上添加一些新内容:

星号不是DELETE可以使用的,只有SELECT可以使用。但是我要在此处添加的是COUNT()之类的(mysql)聚合函数也可以使用星号。

一个基本示例:

SELECT COUNT(*) AS Total
FROM products

以下是它们各自的参考文献:

注释:

一些刚开始使用SELECT查询来解决问题的数据库的编码人员,可能会认为在DELETE语句中使用星号(也称为“星号”)会使用与SELECT相同的语法,并且会删除所有内容。虽然这是合乎逻辑的,但对于DELETE而言并不能完全有效。

根据您要确切执行的操作,需要使用的是TRUNCATEDROP TABLE。仅删除所选记录,所有记录还是表本身?这个决定是你的。

对于特定记录,请使用WHERE子句。

警告

使用DROP TABLE时要小心,它将删除所有内容,包括任何现有列是否为空以及它们的定义。

使用TRUNCATE仅删除所有记录,而不删除列及其定义。

使用前请先查阅手册:


脚注:

对于那些(正在重新访问)问题的人,请注意,mysql_ * api已在PHP 7.0中弃用并删除(不再受支持)。

升级到mysqli_ *或PDO api。

咨询以下参考文献: