如何 select 使用 POSTGRES LTREE 清空路径
How to select empty paths with POSTGRES LTREE
我在 Postgres 中定义了一个简单的 table,我在其中使用 LTREE,但有些行可以有空路径:
CREATE TABLE films (
id serial PRIMARY KEY,
title varchar(40) NOT NULL,
path ltree DEFAULT NULL
);
如果我将以下值插入 table,
INSERT INTO films (title, path)
VALUES ('first', 'A'),('second', 'A.B'),('third', NULL);
然后尝试 select 具有空路径的行,
SELECT * FROM films WHERE path=NULL;
我得到空行:
id | title | path
----+-------+------
(0 rows)
我应该如何将查询修改为具有空路径的 return 行?谢谢!
与至少一个操作数的比较运算结果总是NULL returns NULL。因此,您的谓词 where path = null
始终 return 为 null,但是到 select 的一行表达式必须 return 为真。改用:
SELECT * FROM films WHERE path is NULL;
我在 Postgres 中定义了一个简单的 table,我在其中使用 LTREE,但有些行可以有空路径:
CREATE TABLE films (
id serial PRIMARY KEY,
title varchar(40) NOT NULL,
path ltree DEFAULT NULL
);
如果我将以下值插入 table,
INSERT INTO films (title, path)
VALUES ('first', 'A'),('second', 'A.B'),('third', NULL);
然后尝试 select 具有空路径的行,
SELECT * FROM films WHERE path=NULL;
我得到空行:
id | title | path
----+-------+------
(0 rows)
我应该如何将查询修改为具有空路径的 return 行?谢谢!
与至少一个操作数的比较运算结果总是NULL returns NULL。因此,您的谓词 where path = null
始终 return 为 null,但是到 select 的一行表达式必须 return 为真。改用:
SELECT * FROM films WHERE path is NULL;