我很难写一个查询来删除在Mysql中重复的前2个条目。有人请帮助我。我遇到了如何查询select语句而不是删除查询。以下是要求;如果表包含多于或等于特定记录的10个值,则删除第一个记录(最顶层)。以下是我的代码。
$result = mysql_query("SELECT * FROM billinfo WHERE tableno='10'") or die(mysql_error());
$num_rows = mysql_num_rows($result);
echo $num_rows;
$query2='';
if($num_rows>10)
{
$query2 = mysql_query("DELETE * TOP FROM billinfo Where tableno='10')");
}
答案 0 :(得分:1)
首先,你正在检查$num_rows
是否小于10,如果我理解你想要相反的情况。
你没有定义“top”的意思 - 我假设一个字段的最大值,因此我在查询中将其写为XX
。
尝试类似
的内容if($num_rows>10) {
$query2 = mysql_query("DELETE FROM billinfo WHERE tableno='10' ORDER BY XX DESC LIMIT 1");
}
这将删除1行(在LIMIT
部分中定义),因为结果集按XX DESC
排序,它将是XX
值最大的行。 / p>
有关更多信息,请参阅delete
上的Mysql文档