2014-08-28 83 views
1

在我的SQL表中有columnX有空值(“”)的行。现在我想让他们查询选择它们,然后删除它们。如何检查该表是否有空行然后删除它们

查询,如:

tables has empty rows 

Delete empty rows 

我怎样才能做到这一点。任何想法

+2

* empty rows *是什么意思?你的意思是所有列都是空的吗?哪一列是空的?哪些列为空或默认值? – GarethD 2014-08-28 08:06:36

+0

不是不为空 – Nadeem 2014-08-28 08:08:22

+0

您不需要先检查。 – Strawberry 2014-08-28 08:14:12

回答

-1

好试试这个,我希望日子会把找你的解决方案

你需要的是,首先获得空行

Select * From table_name Where column_name = ""; 

然后删除空行

Delete From table_name Where column_name = ""; 

或别'写入选择查询只写删除查询

我希望这能解决你的问题

+0

正是我需要的...因为我先检查然后我删除 – Nadeem 2014-08-28 08:35:21

+0

如果你总是要删除选择是完全没有意义的。你想要防止什么,删除0行? – Anthony 2014-08-28 10:12:20

+0

的问题是他首先检查空行然后删除行 – deemi 2014-08-28 10:50:17

5

取决于究竟你的意思是“空”的行:

delete from yourTable where column1 is null 

将删除其中COLUMN1具有空值。如果你的意思是在多个列具有空值,它只是一个增加更多的条件,where子句的事情:

delete from yourTable where column1 is null and column2 is null and column3 is null 

如果空你的意思是“有空间在文本字段或字段为空”,您可以使用一些内置功能找到它们,例如:

delete from yourTable where trim(column1)='' 

哪一个会在表中找到一行,其中column1只有空白,等等。

您可能想要阅读我在SQL,连接等方面编写的this article--它在表格中选择正确的行时已经有一点点了 - 在您的情况下,将select.... from where...替换为一个delete from where...

说了这么多,我真的想知道为什么你插入数据到你不想要的表中?

3

您可以检查每个字段为空或空字符串是这样的:

DELETE FROM table WHERE (column1 IS NULL OR column1 = '') AND (column2 IS NULL OR column2 = '') 

你列的其余部分只需添加到WHERE条款。

2

简单:delete from Test_table where c1 is null,....and cN is null