当前位置: 首页 > 面试题库 >

通过整数数组中的索引查询表

汝楷
2023-03-14
问题内容

在从VB.NET转换数据“ to_timestamp”和“
to_number”获得出色的结果之后,我想知道PostgreSQL是否有可能通过.NET的整数数组查询表索引?

说,我的数组充满(1, 3, 5, 6, 9)。PostgreSQL是否有可能将包含这些索引的数据的行返回到“ odbc.reader”?
这将比我现在循环和查询5次要快得多。

像这样的东西:

SELECT myindexes, myname, myadress from mytable WHERE myindexes IS IN ARRAY

如果可能的话,一个简单的查询应该是什么样子?


问题答案:

有可能

任何

SELECT myindex, myname, myadress
FROM   mytable
WHERE  myindex = ANY ($my_array)

整数数组示例:

...
WHERE  myindex = ANY ('{1,3,5,6,9}'::int[])

有关详细信息,请ANY参见手册。

也有用于相同目的的SQLIN()表达式。
PostgreSQl在其当前实现中将其转换为= ANY (array)内部执行之前,因此可以想象它会慢一些。

加入 列表的示例(根据评论):

JOIN到VALUES表达式

WITH x(myindex) AS (
    VALUES
    (1),(3),(5),(6),(9)
    )
SELECT myindex, myname, myadress
FROM   mytable
JOIN   x USING (myindex)

我在示例中使用CTE(这是可选的,也可以是子查询)。为此,您需要PostgreSQL 8.4或更高版本。
关于的手册VALUES

联接到未嵌套的数组

或者,您可以unnest()使用数组并JOIN对其进行处理:

SELECT myindex, myname, myadress
FROM   mytable
JOIN  (SELECT unnest('{1,3,5,6,9}'::int[]) AS myindex) x USING (myindex)

这些方法中的每一种在性能上均 远胜 于针对每个值运行单独的查询。



 类似资料:
  • 问题内容: 如何在Elasticsearch中按数组索引查询/过滤? 我有一个像这样的文件: 我想搜索 LIN [0] 是否为“ UP”并且 LIN [1]是否 存在。 谢谢。 问题答案: 这看起来可能像hack,但是可以肯定地起作用。首先,我们将令牌计数类型与多字段一起应用以捕获令牌数量作为字段。因此,映射将如下所示- 链接-http: //www.elasticsearch.org/guide

  • 背景:我们使用书面记录来记录我们不断变化的模型的历史。现在我想查询一个属于某个客户的项目。PaperTrail可选择存储对象更改,我需要查询此字段以了解何时使用此ID创建了某些内容或更改为此ID。 我的表看起来简化如下: 如何查询从或更改为ID 5的元素(因此上面的所有行)?我试过: 这让我:

  • 我想知道在java中是否有一种方法可以在数组中的特定索引处提取和找到integer。然后我想把这个整数存储在一个变量中。这是可以做到的吗?

  • 我希望的工作方式与相同,以符合Python索引约定。不支持按单个整数索引行是否有设计原因?

  • 问题内容: 我有一系列元素。我还有一个IndexSet,它指定需要将数组的哪些索引提取到新数组中。例如: 我正在寻找使用swift 函数的方法,但是还没有答案。我怎样才能做到这一点? 问题答案: 是递增整数的集合,因此可以 将 每个索引 映射 到相应的数组元素: 假定所有索引对于给定数组均有效。如果不能保证,则可以过滤索引(如@dfri正确标记):

  • Java中用于检索未排序整数数组中元素的索引的内部数据查询是什么。 不使用任何集合类型进行检索的过程是什么?