2010-11-07 38 views
1

任何人都可以在MySQL中显示一个查询,从而删除所有可用列中的行。MySQL - 删除一行,如何?

我使用它来插入行:

$sql = "INSERT INTO " . KEYS . "   // KEYS is a constant 
(key, user_id, time, approved) 
VALUES ('" . $randkey . "', '" . $user_id . "', '" . $time . "', '0')"; 

我需要这个相反的现在,删除创建的行数。

+0

我不太明白,为什么它被低估了。是的,它是不好的,没有太大的措辞...等等呢? – 2012-05-03 09:19:46

回答

2

使用类似的语法sql =“DELETE FROM”。 KEYS。 “WHERE 1 = 1”;

将1 = 1替换为要删除的行的条件,否则将删除所有行。

此外,尽快摆脱变量到SQL的习惯是很好的,因为它会打开您的代码高达SQL Injection攻击。研究使用参数化查询。

+7

lmao。危险的例子。 – stillstanding 2010-11-07 15:24:34

+1

你可以给我看看那些吗?我想从该表中删除所有内容,但提供的代码不会删除所有内容。为什么? – Aborted 2010-11-07 15:31:39

+0

1 = 1总是如此。这应该删除一切。 – jocull 2010-11-07 15:33:00

3
delete from <table> where .... 

请记住,DELETE语句始终是一整行。

+0

如果你知道你打算删除多少行,那么最好还是设置一个限制。通常你只是想删除1行,所以如果你的WHERE子句或上帝禁止出现错误,那么LIMIT 1可以拯救你,你忘了放一个! – ajacian81 2010-11-07 16:06:05

+0

@ ajacian81我不同意,这样你就会隐藏bug。 – 2012-05-03 09:17:54

+0

@AlexanderMalakhov错误仍然存​​在,如果他想要删除一个特定的行,但查询实际上会删除多于一行,那很可能删除的行不会是他想删除的那一行,而是观察到的。无可挽回地比删除数百/数千行更好。 – ajacian81 2012-05-15 16:34:41