postgresql select return 0 当默认值设置为 null
postgresql select return 0 when default value is set to null
有以下table
create table t1(
id SERIAL PRIMARY KEY,
v1 varchar(100) DEFAULT NULL,
v2 text
);
执行:INSERT INTO t1 (v2) VALUES ('aaaa'), ('bbb'), ('ccc');
然后 SELECT * FROM t1
returns 按预期执行:
1 | | aaa
2 | | bbb
3 | | ccc
当 运行 以下 sql 我期望得到 1,2,3 而我得到 0 行
SELECT id FROM t1 WHERE v1=NULL
也试过这个SELECT id FROM t1 WHERE LENGTH(v1)=0
我怎样才能得到 id 的
干杯
在 postgres 中检查值是否为 null 你应该使用下面的键盘:
- 为空
- 不为空
关于比较的更多细节:
https://www.postgresql.org/docs/9.6/functions-comparison.html#FUNCTIONS-COMPARISON-PRED-TABLE
SELECT id FROM t1 WHERE v1 IS NULL
有以下table
create table t1(
id SERIAL PRIMARY KEY,
v1 varchar(100) DEFAULT NULL,
v2 text
);
执行:INSERT INTO t1 (v2) VALUES ('aaaa'), ('bbb'), ('ccc');
然后 SELECT * FROM t1
returns 按预期执行:
1 | | aaa
2 | | bbb
3 | | ccc
当 运行 以下 sql 我期望得到 1,2,3 而我得到 0 行
SELECT id FROM t1 WHERE v1=NULL
也试过这个SELECT id FROM t1 WHERE LENGTH(v1)=0
我怎样才能得到 id 的 干杯
在 postgres 中检查值是否为 null 你应该使用下面的键盘:
- 为空
- 不为空
关于比较的更多细节:
https://www.postgresql.org/docs/9.6/functions-comparison.html#FUNCTIONS-COMPARISON-PRED-TABLE
SELECT id FROM t1 WHERE v1 IS NULL