我正在我的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'?
谢谢
您的第一个查询确实返回一个布尔值。t
显示为查询的返回值
select exists (select 1);
exists
--------
t
但如果您检查其类型,则它是一个布尔值:
select pg_typeof(exists (select 1));
pg_typeof
-----------
boolean
您必须查看lua的postgresql驱动程序手册,了解如何正确处理它。
用CASE
select
(case when exists (SELECT id FROM user WHERE membership = 1244)
then 1
else 0
end) as column;
我的测试小提琴
你是如此接近
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 (