【问题标题】:Setting value for one column of all records in table设置表中所有记录的一列的值
【发布时间】:2012-04-28 14:01:16
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: mysql sql


    【解决方案1】:
    UPDATE your_table SET likes = NULL
    

    或者如果您的likes 列不允许NULL

    UPDATE your_table SET likes = ''
    

    默认情况下,一些用于执行数据库查询的 SQL 工具会阻止更新所有记录(没有where 子句的查询)。您可以对其进行配置并删除该保存设置,或者您可以为所有记录添加 where 子句,即 true 并像这样更新所有内容:

    UPDATE your_table 
    SET likes = NULL
    WHERE 1 = 1
    

    如果您比较NULL,那么您还需要IS 运算符。示例:

    UPDATE your_table 
    SET likes = NULL
    WHERE likes IS NOT NULL
    

    因为 比较 NULL 与等号运算符 (=) 返回 UNKNOWN。但是IS 操作符可以处理NULL

    【讨论】:

    • 关于where 选项的最后一条信息 - 谢谢!
    • 0 行受影响。 (查询耗时 0.0012 秒。)更新trips set driver_id = 1 where driver_id = NULL
    • 这是有效的 update your_table set likes = null where 1 = 1 但我如何设置随机数
    • @sabertababaeyazdi:where driver_id = NULL 不起作用。将其替换为where driver_id IS NULL
    • @sabertababaeyazdi:比较null时,您需要is运算符。
    猜你喜欢
    • 1970-01-01
    • 2022-07-16
    • 2012-09-05
    • 2021-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-07
    • 2023-03-25
    相关资源
    最近更新 更多