如何识别文本中的一组 2 位或 3 位数字? postgresQL
How do you identify a set of 2 or 3 digits within text? postgresSQL
我想查找“描述”中有 2 位或 3 位数字的实例。
table就像
id | description
--- ------------
1 | This is 40cm long.
2 | The dog is black.
我认为这应该是一个简单的查询,如有任何帮助,我们将不胜感激。
我试过了
SELECT id, description
FROM table
WHERE description LIKE '%[0-9]%' or description LIKE '%[0-9][0-9]%'
虽然我认为应该 return
但 return 没有结果
id | description
--- ------------
1 | This is 40cm long.
谢谢
在 Postgres 中,使用正则表达式。这匹配 1 个或两个数字(如代码中所示):
WHERE description ~ '[0-9]{1,2}'
这匹配 2 或 3(如描述中所示):
WHERE description ~ '[0-9]{2,3}'
您将 LIKE 与正则表达式混淆了。您可以使用正则表达式路由,或者查看 SQL 标准 SIMILAR TO:
WHERE description SIMILAR TO '%[0-9]{2,3}%'
应该为您提供 2 位或 3 位数字的描述
来源:https://www.postgresql.org/docs/current/functions-matching.html
我想查找“描述”中有 2 位或 3 位数字的实例。
table就像
id | description
--- ------------
1 | This is 40cm long.
2 | The dog is black.
我认为这应该是一个简单的查询,如有任何帮助,我们将不胜感激。
我试过了
SELECT id, description
FROM table
WHERE description LIKE '%[0-9]%' or description LIKE '%[0-9][0-9]%'
虽然我认为应该 return
但 return 没有结果id | description
--- ------------
1 | This is 40cm long.
谢谢
在 Postgres 中,使用正则表达式。这匹配 1 个或两个数字(如代码中所示):
WHERE description ~ '[0-9]{1,2}'
这匹配 2 或 3(如描述中所示):
WHERE description ~ '[0-9]{2,3}'
您将 LIKE 与正则表达式混淆了。您可以使用正则表达式路由,或者查看 SQL 标准 SIMILAR TO:
WHERE description SIMILAR TO '%[0-9]{2,3}%'
应该为您提供 2 位或 3 位数字的描述
来源:https://www.postgresql.org/docs/current/functions-matching.html