56

我正在尝试清除表中所有记录的一列。例如,如果我的表有三列:idcommentlikes- 我希望能够清除该likes列。

+---+-------+-----+
|id |comment|likes|
+-----------------+
|1  |hi     |3    |
|2  |hello  |12   |
|3  |hey    |1    |
+---+-------+-----+

所以之后它看起来像这样:

+---+-------+-----+
|id |comment|likes|
+-----------------+
|1  |hi     |     |
|2  |hello  |     |
|3  |hey    |     |
+---+-------+-----+

我猜我必须使用 MySQLUPDATE来清除likes值,但是我如何遍历所有记录并保持idcomment字段相同?

我不想手动更改每条记录。

4

1 回答 1

100
UPDATE your_table SET likes = NULL

或者如果您的likes专栏不允许NULL

UPDATE your_table SET likes = ''

默认情况下,一些用于执行 DB 查询的 SQL 工具会阻止更新所有记录(不带where子句的查询)。您可以配置它并删除该 savety 设置,或者您可以添加一个适用于所有记录的where子句并更新所有内容,如下所示:true

UPDATE your_table 
SET likes = NULL
WHERE 1 = 1

如果与then进行比较NULL,则还需要IS运算符。例子:

UPDATE your_table 
SET likes = NULL
WHERE likes IS NOT NULL

因为 NULL等号运算符 ( =) 比较会返回UNKNOWN。但IS运营商可以处理NULL

于 2012-04-28T14:03:05.637 回答