当前位置: 首页 > 知识库问答 >
问题:

检查postgresql查询中的布尔真/假结果

蒲寂离
2023-03-14

我正在我的web应用程序中运行以下sql查询:

SELECT EXISTS (
SELECT id
FROM user
WHERE membership=1244)

我期望结果为true(布尔数据),但我得到的是false的t或f。我如何让它返回到我的lua代码一个标准的布尔值?

我发现了以下帖子:

用PHP正确读取Postgres中的布尔值

所以我试着把代码改成这样:

SELECT EXISTS ::int (
SELECT id
FROM user
WHERE membership=1244)

SELECT ::INT (SELECT EXISTS (
SELECT id
FROM user
WHERE membership=1244))

但是我有一个语法错误<你能告诉我最好的处理方法吗?我是否应该以某种方式将结果“t”转换为布尔值?或者有没有办法告诉postgresql返回true/false而不是't'/'f'?

谢谢

共有3个答案

轩辕亮
2023-03-14

您的第一个查询确实返回一个布尔值。t显示为查询的返回值

select exists (select 1);
 exists 
--------
 t

但如果您检查其类型,则它是一个布尔值:

select pg_typeof(exists (select 1));
 pg_typeof 
-----------
 boolean

您必须查看lua的postgresql驱动程序手册,了解如何正确处理它。

魏硕
2023-03-14

CASE

select       
  (case when exists (SELECT id FROM user WHERE membership = 1244)
    then 1 
    else 0 
  end) as column;

我的测试小提琴

丁阳炎
2023-03-14

你是如此接近

SELECT EXISTS (SELECT id FROM user WHERE membership=1244)::int 
 类似资料:
  • 在java以下作品:

  • 我在这里遵循指南https://dzone.com/articles/23-usplient-ellasticsearch-example-queries,下面的bool查询让我感到困惑: 根据教程,查询的解释是: 搜索标题中有“ellasticsearch”或“solr”字样的书,由“Clinton Gormley”撰写,但不由“Radu Gheorge”撰写 我的问题是,bool查询中有3个条

  • 我使用bool查询的必须和must_not功能。它像预期的那样工作,直到我得到一个3级深的属性。 工作正常并返回结果,但如果我在bool查询中执行相同的操作,如。。 不返回任何结果。这是为什么?????记住其他bool查询,例如。。 干得很好!它只适用于任何3级深的字段,因此搜索任何1级深的术语。建议3。建议3

  • 在PostgreSQL(9.4版,pgAdmin3)中,当对具有布尔列的表执行select时,数据输出显示“t”或“f”。我想在不写CASE语句或进行连接的情况下,将布尔值转换为TRUE或FALSE。 顺便说一句,根据PostgreSQL自己的文档,这种行为不是SQL标准。 关键字TRUE和FALSE是首选(符合SQL的)用法。 PS:只有在pgAdmin中使用SQL编辑器时才会发生这种情况。使用

  • 问题内容: 我正在用查询查询我的elasticsearch索引。查询本身的结构与此类似 我希望能够确定所有这些查询中哪一个是与结果匹配的查询。是否有内置的elasticsearch方法允许这样做,还是我必须手动进行? 问题答案: 您可以使用命名查询,然后在结果中获得匹配的查询的名称。 然后,在结果中,您将获得一个数组,其中包含与文档匹配的查询的名称。

  • 除了相等检查,Jasmine还提供了一些方法来检查布尔条件。 以下是帮助我们检查布尔条件的方法。 toBeTruthy() 此布尔匹配器在Jasmine中用于检查结果是等于true还是false。 以下示例将帮助我们理解toBeTruthy()函数的工作原理。 ExpectSpec.js describe("Different Methods of Expect Block",function (