如何将所有空行更改为NULL?

时间:2015-10-26 13:30:25

标签: php mysql null

我有一张这样的表:

// mytable
+----+--------+
| id |  name  |
+----+--------+
| 1  |  Jack  |
| 2  |        |
| 3  |  Peter |
| 4  |        |
| 5  |        |
| 6  |  Alvin |
+----+--------+

此查询的输出始终为1

SELECT ... (mytable.name IS NOT NULL) as col ... FROM ...

//=> echo result["col"]; -> always it will be "1"

现在,如何将空记录更改为NULL?因为我希望它返回1只是为了有名称的地方,如果没有我想要的任何名称,则返回0

其实我想要这样的东西:

// newtable
+----+--------+
| id |  name  |
+----+--------+
| 1  |  Jack  |
| 2  |  Null  |
| 3  |  Peter |
| 4  |  Null  |
| 5  |  Null  |
| 6  |  Alvin |
+----+--------+

如何将我的表格转换为^?

2 个答案:

答案 0 :(得分:3)

如果您的表列名称可以为空,则可以更新您的数据:

UPDATE mytable
SET name = NULL
WHERE name = '';

如果您的列名称为NOT NULL,则需要先将其更改为允许NULL

或者如果您需要创建新表,可以使用:

CREATE TABLE newtable
AS
SELECT id, CASE WHEN TRIM(name) = '' THEN NULL ELSE name END AS name
FROM mytable;

答案 1 :(得分:1)

如果您的表列名称可以为空,则可以更新您的数据,并且名称列应该有空格

UPDATE mytable
SET name = NULL
WHERE replace(name,' ','') = '';