首页 > 解决方案 > PostgreSQL - 选择字符串中带有 ID 的所有评论

问题描述

我在一个大表中有一些有问题的插入列,如下所示:

id | comment 
1 | problematic comment @[some_string](some_string) without ID in it
2 | normal comment @[theunreal](1239329322) good comment with user mention

如您所见,有一个带有 ID 的注释,另一个带有字符串。我想用括号中的字符串选择所有注释(有问题的一次 - 示例中的第一个)

知道如何使用 Postgres 查询此类数据吗?

标签: sqlpostgresql

解决方案


您可以尝试像这里这样的正则表达式:

SELECT *
FROM yourTable
WHERE comment !~* '@\[.*?\]\([0-9]+\)';

演示

上面的逻辑试图找到具有正确(1239329322)格式的注释,即括号内的所有数字。然后它匹配任何没有所有数字的记录。


推荐阅读