我有一个包含大量条目的数据库表[id,first,second,third]
,我希望在[first,second,third]
为空时删除所有条目。
我可以使用WHERE
和OR
吗?
这是我想要使用的代码。但是,它可能会显示一些错误:
$sql= "delete * from mytable where first='' or second='' or third=''";
mysql_query($sql) or die("query failed: $sql".mysql_error());
答案 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而言并不能完全有效。
根据您要确切执行的操作,需要使用的是TRUNCATE或DROP TABLE。仅删除所选记录,所有记录还是表本身?这个决定是你的。
对于特定记录,请使用WHERE子句。
使用DROP TABLE时要小心,它将删除所有内容,包括任何现有列是否为空以及它们的定义。
使用TRUNCATE仅删除所有记录,而不删除列及其定义。
使用前请先查阅手册:
脚注:
对于那些(正在重新访问)问题的人,请注意,mysql_ * api已在PHP 7.0中弃用并删除(不再受支持)。
升级到mysqli_ *或PDO api。
咨询以下参考文献: