MySQL查询:删除列中的空记录

9
我有一个大型的mySQL数据库,我想删除某个列中为空而非null的每一条记录。编写一个SQL查询的最佳方法是什么?
目前我尝试过:
 DELETE FROM Businesses WHERE WEBADDRESS IS NULL

但它并没有删除任何内容。在那个列中,有44000条记录,其中近80%的记录为空值。

根据您的评论修改了您的问题。现在这是一个更好的SO问题,为那些试图帮助您的人提供了一些关于您所做的事情和更多上下文信息。 - Matthew
6个回答

21

我尝试了,但它没有删除任何内容。在那一列中有44,000条记录,几乎80%的记录为空。这是我的查询语句: DELETE FROM Businesses WHERE WEBADDRESS IS NULL - Michael Falciglia
这些记录是否存在外键依赖关系?有没有错误信息?该列实际上是空的还是只是空白? - Matthew
我有一个包含19列的CSV文件,所以我创建了一张表格,并按照CSV文件中的列名命名每一列,并将它们全部设置为VARCHAR 255,然后导入了CSV文件。导入成功且没有出现任何错误,我也没有对表格结构进行其他更改。 - Michael Falciglia
哦,我明白了,null和空白是不同的。我之前不知道这个。我现在会尝试一下。 - Michael Falciglia
@OP 第二个查询应该可以工作,MySQL 应该将这些空列导入为 '',除非您正在指定 \N 以表示应为空的行。 - Matthew

2
delete from your_table
where certain_column is null

1
DELETE from `<tablename>`
WHERE `<columnname>` is null

1
delete from table_name where column=''

0

不用担心数据量的问题。Mysql可以处理它。只需要写:

 DELETE FROM `Businesses` WHERE `WEBADDRESS` = '';

0

删除空值数据:delete from table_name where column_name is null; 这个查询一定可以帮到你。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接