Php 如何在mysql中删除特定的行,而不带任何Where条件
我有以下代码Php 如何在mysql中删除特定的行,而不带任何Where条件,php,mysql,Php,Mysql,我有以下代码 <?php $result = mysql_query("SELECT * FROM table1"); $row = mysql_fetch_row($result); while($row = mysql_fetch_array($result)) { //Do some process //Then delete this row }
<?php
$result = mysql_query("SELECT * FROM table1");
$row = mysql_fetch_row($result);
while($row = mysql_fetch_array($result))
{
//Do some process
//Then delete this row
}
您不能,MySQL将不知道要删除哪个记录
您要么使用主键,要么添加所有字段并添加一个限制
,即使这样,您也无法确定它是该行
如果要删除表中的所有记录,请使用
TRUNCATE TABLE table1
因此,如果您实际上正在执行表1中的SELECT*,我会将其编码为:
$result = mysql_query("SELECT * FROM table1");
$row = mysql_fetch_row($result);
while($row = mysql_fetch_array($result))
{
//Do some process
}
mysql_query("TRUNCATE TABLE table1");
(当然,不要使用mysql.*
函数,但是MySQLi或PDO)你不能,mysql将不知道要删除哪个记录
您要么使用主键,要么添加所有字段并添加一个限制
,即使这样,您也无法确定它是该行
如果要删除表中的所有记录,请使用
TRUNCATE TABLE table1
因此,如果您实际上正在执行表1中的SELECT*,我会将其编码为:
$result = mysql_query("SELECT * FROM table1");
$row = mysql_fetch_row($result);
while($row = mysql_fetch_array($result))
{
//Do some process
}
mysql_query("TRUNCATE TABLE table1");
(当然,不要使用mysql.*
函数,而是使用MySQLi或PDO)从代码中,您似乎希望删除表中的所有条目。(因为这就是您的代码/伪代码所做的。)您可以使用以下工具轻松地做到这一点:
DELETE FROM table
请不要再使用mysql.*
函数。它们被标记为已弃用,最终将从PHP中删除。使用或。从代码中,您似乎希望删除表中的所有条目。(因为这就是您的代码/伪代码所做的。)您可以使用以下工具轻松地做到这一点:
DELETE FROM table
请不要再使用mysql.*
函数。它们被标记为已弃用,最终将从PHP中删除。使用或代替
它们不再得到维护,并且已经开始使用。看到了吗?相反,学习,并使用或-这将帮助你决定哪一个
您可以使用以下MySQLI代码:
$query = "SELECT * FROM tablename";
$result= $mysqli -> query($query);
while($row = $result -> fetch_object()){
$row_identifier = $row -> column_with_unique_id;
// Do the processing bit here.
// Now Delete
$del_query = "DELETE FROM tablename WHERE column_with_unique_id = ".$row_identifier;
$del_result= $mysqli -> query($del_query);
}
它们不再得到维护,并且已经开始使用。看到了吗?相反,学习,并使用或-这将帮助你决定哪一个
您可以使用以下MySQLI代码:
$query = "SELECT * FROM tablename";
$result= $mysqli -> query($query);
while($row = $result -> fetch_object()){
$row_identifier = $row -> column_with_unique_id;
// Do the processing bit here.
// Now Delete
$del_query = "DELETE FROM tablename WHERE column_with_unique_id = ".$row_identifier;
$del_result= $mysqli -> query($del_query);
}
为什么不直接从表中删除?如果需要删除每一行,为什么不进行简单的DELETE FROM table
?您需要某种键或引用来删除所需的行,除非您想删除整个数据集。这是个不错的问题,upvoting to offset。@Passenger他也想先处理记录。为什么不直接从表中删除?如果需要删除每一行,为什么不进行一次简单的DELETE FROM table
?您需要某种键或引用来删除所需的行,除非您想删除整个数据集。这是个不错的问题,upvoting to offset。@Passenger他也想先处理记录。使用TRUNCATE TABLE时速度更快
使用TRUNCATE TABLE时速度更快