如何从Postgres中的字符串类型字段返回布尔值true/false而不是t/f。使用Postgres返回布尔值
SELECT (CASE WHEN status = 'active' THEN true ELSE false END)::boolean AS status
FROM table;
如何从Postgres中的字符串类型字段返回布尔值true/false而不是t/f。使用Postgres返回布尔值
SELECT (CASE WHEN status = 'active' THEN true ELSE false END)::boolean AS status
FROM table;
t
和f
是多么psql
打印布尔值,它不应该是很重要的。此外,您还可以简化您的查询,如下所示:
SELECT status = 'active' AS status FROM table;
如果你真的想要得到文本列status
,请执行下列操作:
SELECT (status = 'active')::text AS status FROM table;
如果你想获得一个号码,而不是(0对于假,1为真),这样做:
SELECT (status = 'active')::integer AS status FROM table;
查询的结果对我来说很重要,因为我在一个库中使用它在我的php代码中,结果必须是真/假而没有双引号 –
@Nawalel我没有使用postgres的PHP绑定,但它应该正确处理第一个查询。如果它不尝试第三个,它将布尔变换为0/1。 – redneb
只需使用'1'和'0'值。 – sagi
@sagi:'1'和'0'不是布尔值,那些是数字 –