选择Where Like正则表达式

问题描述 投票:0回答:3

我需要创建一个SQL查询。此查询需要从列中包含正则表达式的表中进行选择。

例如,我有这些值:

表测试(名称)

  • XHRTCNW
  • DHRTRRR
  • XHRTCOP
  • CPHCTPC
  • CDDHRTF
  • PEOFOFD

我想选择1个字符后面有“HRT”的所有数据(值1,2和3 - 看起来像“-HRT ---”的值),而不是那些在1个字符后可能有“HRT”的数据(值5) )。

所以我不知道如何做到这一点因为简单

SELECT * 
FROM test 
WHERE name LIKE "%HRT%"

将返回值1,2,3和5。

对不起,如果我不清楚我想要/需要什么。

sql regex postgresql
3个回答
1
投票

你可以使用substring

SELECT * FROM test WHERE substring(name from 2 for 3) = 'HRT'

2
投票

您也可以更改模式。而不是使用%,这意味着零或更多的东西,你可以使用_,这意味着一个。

SELECT * FROM test WHERE name like '_HRT%';

0
投票

这些名字总是7个字母吗?做:

SELECT substring (2, 4, field) from sometable

那将只选择第2-4个字符然后你就可以使用像“%HRT”

© www.soinside.com 2019 - 2024. All rights reserved.