如果重复,则删除最后一个索引

时间:2014-01-19 03:50:47

标签: php mysql sql

为什么这段代码不能正常工作? 当我将其中一个条目,昵称或电子邮件加倍时, 它会从双重新条目中删除。

但如果昵称和电子邮件都相同, 它只是不会删除最后一个条目,而只是插入一个重复的行。

注意:我每行只有一个自动递增的值,没有时间戳,所以我不能简单地删除最新的条目,我必须确保删除最后一个插入的条目。

编辑:我可以假设我只能使用上面的if语句,但是如果我愿意的话,两个条目都会被删除(如果我拿出了AND - 部分程序)......

我现在的代码(PRIMARY KEY是KNR):

if(($doubleEmail || $doubleNickname) && !($doubleEmail && $doubleNickname))
        {
            mysql_query("DELETE FROM ".$sql['table']
            . " WHERE ".$sql['email']."='".mysql_real_escape_string($email)  
            . "' AND ".$sql['nick']."='".mysql_real_escape_string($nickName)."'");
            echo "double entry";
        }
elseif($doubleEmail && $doubleNickname) 
        {
            mysql_query("DELETE FROM ".$sql['table']." WHERE KNR > 
            ( ( SELECT MAX( KNR )-1 FROM ".$sql['table']."))");
            echo "double entry";

        }

1 个答案:

答案 0 :(得分:0)

我建议使用

DELETE FROM `YOUR_TABLE` ORDER BY `YOUR_PRIMARY_KEY` DESC LIMIT 1

您的查询生成1093 sql错误。看到类似的问题:Deleting a row based on the max id

(旁注:总是逃避查询中的每个值和每个值,即使它们不是动态的,也来自配置文件。)

相关问题