sql - 如何在 PostgreSQL CITEXT 变量中格式化为用于搜索的正则表达式
问题描述
首先 - 所有学分都归于 Laurenz Albe在这里回答
我有一个 JSONB 列,我需要在其中对值执行搜索(正如链接问题中所解释的那样)。我认为可以从那里的答案和三元索引中获得优势。但是在答案中,搜索的正则表达式是直接硬编码的WHERE visitors::text *~ '\mJohn Doe\M';
我的值来自前端,用户输入一个搜索字符串,该字符串在 postgres 函数中命名为search_term
.
如果我要直接使用答案,我将不得不执行WHERE visitors::text search_term
这显然行不通。
我的问题是如何继续查询,以便我可以修改变量并获得与原始帖子中search_term
相同的效果?*~ '\mJohn Doe\M'
解决方案
只需将变量作为正确的操作数传递给 regexp operator *~
;
WHERE visitors::text *~ '\m' || search_term || '\M'
推荐阅读
- angular - 如何访问 Angular Material Data-Table 中同一行的不同单元格中的单元格的值?
- java - 安全工具扫描问题 - Java 中的无人看守写入
- r - 将不同的数字重新编码为 R 中的 NA
- java - 尝试使用 selenium 和 java 自动化谷歌搜索功能时如何处理谷歌隐私同意书 (cookies)
- javascript - 为什么我的 AI 在发出错误之前只移动了 3 次?
- python - 模块独立工作,但导入时出现错误
- python - 需要帮忙 !!关于理解错误“ TypeError: len() 没有关键字参数”
- c# - 如何从数据库对象创建特定视图?ASP.NET MVC
- android - 在 Jetpack Compose 的文本组件中显示新行
- swift - 添加一个 CAShapeLayer 很快就会越界