gpt4 book ai didi

node.js - 是否可以将 ts_stat 与参数化查询 Postgresql 一起使用

转载 作者:行者123 更新时间:2023-11-29 13:38:22 25 4
gpt4 key购买 nike

我正在尝试在 ts_vector 列上使用来自 PostgreSQL 的 ts_stat。问题是我需要保护它免受 SQL 注入(inject),所以我不能使用“concat”字符串或替换?将“正常查询”传递给 ts_stat

我正在寻找的是这样的:

SELECT * FROM ts_stat($$ SELECT tsv_column FROM table where otherColumn ILIKE ? $$)

我将 node.js 与 https://www.npmjs.com/package/pg 一起使用做查询。最终目标是能够像这样查询一个词及其出现次数:

字数统计

苹果 - 650025

cookie - 1500

我会将它们用作词云。如果您有其他想法可以帮助我做到这一点,我是开放的,但它需要非常快(在一个包含一大块文本的列上有 80,000 个条目的数据库上,最多需要 6 秒)。现在,我可以在 5 到 6 秒内获得我想要的结果,但查询无法参数化,但必须参数化。

谢谢!

最佳答案

使用“格式”功能。

SELECT * FROM ts_stat(format($$ SELECT tsv_column FROM table where otherColumn ILIKE %L $$,user_value_here));

这不会保护用户提供的 _ 或 % 的特殊含义,但如果您想禁止这些特殊含义,您可能一开始就不应该使用 ILIKE。

关于node.js - 是否可以将 ts_stat 与参数化查询 Postgresql 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59107733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com