我需要创建一个SQL查询。此查询需要从列中包含正则表达式的表中进行选择。
例如,我有这些值:
表测试(名称)
我想选择1个字符后面有“HRT”的所有数据(值1,2和3 - 看起来像“-HRT ---”的值),而不是那些在1个字符后可能有“HRT”的数据(值5) )。
所以我不知道如何做到这一点因为简单
SELECT *
FROM test
WHERE name LIKE "%HRT%"
将返回值1,2,3和5。
对不起,如果我不清楚我想要/需要什么。
你可以使用substring
。
SELECT * FROM test WHERE substring(name from 2 for 3) = 'HRT'
您也可以更改模式。而不是使用%
,这意味着零或更多的东西,你可以使用_
,这意味着一个。
SELECT * FROM test WHERE name like '_HRT%';
这些名字总是7个字母吗?做:
SELECT substring (2, 4, field) from sometable
那将只选择第2-4个字符然后你就可以使用像“%HRT”