You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL如何查询comment字段中括号内为非数字ID的问题记录?

PostgreSQL 筛选异常@提及评论的查询方案

我们可以直接利用PostgreSQL内置的正则匹配能力实现需求,核心是匹配@[用户名](内容)结构中括号内的内容不是纯数字的记录。

推荐查询语句

-- 替换下方的「your_table」为你实际的数据表名
SELECT id, comment
FROM your_table
WHERE comment ~ '@\[[^\]]*\]\((?!\d+\))';

正则逻辑说明

  • @\[:匹配@提及的固定开头@[
  • [^\]]*:匹配方括号内的所有用户名内容(直到遇到右方括号为止)
  • \]\(:匹配方括号和括号之间的固定分隔符](
  • (?!\d+\)):负向预查规则,判定括号内的内容不是「1个及以上数字+右括号」的标准ID格式,只要存在任意一个不符合规则的@提及,该条记录就会被筛选出来。

低版本兼容写法

如果你的PostgreSQL版本不支持正则负向预查,可以改用如下写法:

SELECT id, comment
FROM your_table
WHERE comment ~ '@\[[^\]]*\]\([^0-9)]'
   OR comment ~ '@\[[^\]]*\]\([0-9]+[^0-9)]';

用你提供的示例数据测试时,上述语句会正确返回id=1的异常评论,不会返回id=2的正常评论。

内容的提问来源于stack exchange,提问作者TheUnreal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 20:06:03