我有一张这样的表:
// 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 |
+----+--------+
如何将我的表格转换为^?
答案 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,' ','') = '';