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

Postgresql:在数组中搜索任意数量的输入

竺展
2023-03-14

我的表(表1)中有一条名为“Jonh Wood Doe Smith”的记录,即使用户键入任何可能的组合,我也想返回它:“John Doe”、“Jonn Wood Smith”等

我实现了一个collumn(全名),它是一个包含所有名称的数组,并打算像这样搜索它:

SELECT * FROM table1 WHERE ({"Wood","Doe"}) IN ANY (fullName)

你知道这是否可能和/或解决这类问题的最佳方法是什么吗?我会使用postgresql,所以专有方法、函数等都不是问题。它不需要与其他数据库兼容。

注:全名是一个类似{“John”,“Wood”,“Doe”,“Smith”}

共有1个答案

祝英博
2023-03-14

您应该使用数组运算符<代码>

SELECT * FROM users WHERE array['Wood','Doe'] <@ fullname;

不停摆弄

但你真正应该做的是对全文搜索感兴趣

 类似资料:
  • 问题内容: 还有其他方法可以在Postgres的列中搜索某个值吗? 我目前安装的Postgres版本并 没有 让下面的语句: 数组示例: 该语句应返回数组包含的每一行。 问题答案: 对于相等性检查,您可以简单地: 在手册中阅读有关ANY / SOME的信息 。

  • 问题内容: 我希望这行JavaScript: 返回类似: 但相反,它仅返回最后捕获的匹配项: 有没有办法获取所有捕获的比赛? 问题答案: 在大多数情况下,当您重复一个捕获组时,仅保留最后一个捕获。以前的任何捕获都将被覆盖。以某种形式,例如.NET,您可以获取所有中间捕获,但是Javascript并非如此。 也就是说,在Javascript中,如果您有一个带有 N个 捕获组的模式,则即使重复了其中一

  • 问题内容: 我有一个元组列表: 该列表可以是任意长度,元组也可以。我想按它们出现的顺序将其转换成元素的列表或元组: 如果在开发时知道我会得到多少个元组,我可以添加它们: 但是由于直到运行时我才知道会有多少个元组,所以我无法做到这一点。我觉得有一种方法可以使用,但我无法弄清楚。我可以遍历元组并将其添加到累加器中,但是那样会创建很多永远不会使用的中间元组。我还可以遍历元组,然后遍历元组的元素,并将它们

  • 问题内容: 在我的查询中,我想找到与许多LIKE运算符之一匹配的行。我知道这样做的3种方法,但是只有其中一种可以使用索引。 让我们从表开​​始: 插入样本数据后,我可以执行以下操作: 以上查询正确使用索引。 第二种方式: 该查询将不使用索引。我知道的最后一种方法: 与上一个查询类似,该查询将不使用索引。 这是SQL Fiddle,适用于那些想如何使用这些查询的人:http : //sqlfiddl

  • 问题内容: 假设我们有以下js数组 是否有一个js内置函数或jQuery的一个,使用它可以搜索阵列 AR 的 VAL ? 谢谢 *_ _ _更新 _ _ * _ __** 根据 融合的 反应,我创建了这个原型 问题答案: 您可以创建一个哈希。

  • 问题内容: 参考原始的stackoverflow问题,我试图将gin索引应用于Postgres 9.4中数组对象中的键,但没有得到第一个答案中所述的结果。 您能纠正错误吗? 我遵循的步骤已写在下面。 第1部分:创建表和索引 第2部分:查询 该查询给出空结果。 我也尝试使用GIN索引。 替代索引和查询: 问题答案: 原始答案中的这个特定jsonb示例缺少用于包含查询的非原始对象周围的数组层。此后已修