tun*_*ani 1 php mysql sql-delete
假设我有一个带有一堆mysql表的数组的数组:
$idList = array('1','2','3','4','5');
Run Code Online (Sandbox Code Playgroud)
我想删除与每个id关联的行.哪种方法更优选/更好/更快(IYO)?
$idListString = implode(",",$idList);
mysql_query("DELETE FROM this_table WHERE id IN ($idListString)");
Run Code Online (Sandbox Code Playgroud)
要么
foreach($idList as $value) {
mysql_query("DELETE FROM this_table WHERE id = '$value'");
}
Run Code Online (Sandbox Code Playgroud)
我不是专家,但我相信
$idListString = implode(",",$idList);
mysql_query("DELETE FROM this_table WHERE id IN ($idListString)");
Run Code Online (Sandbox Code Playgroud)
是比较快的.原因是,它只进行一次查询.较少的数据被发送到服务器,并且在一个命令中一次性处理.
一般来说,使用另一种方法,如果您说300个值,这意味着您正在进行300次额外的函数调用,300次与服务器的通信等,但实际上可能会有所不同.
编辑:此外,即使您可以确定数据不是恶意的,您也应该始终使用正确的MySQL转义.请参阅http://php.net/manual/en/function.mysql-real-escape-string.php并考虑使用mysqli或PDO.