在字符串中的特定位置查找字符序列

时间:2015-11-25 00:25:51

标签: sql ms-access

我需要使用SQL在字符串中的特定位置查找字符序列。

实施例: atcgggatgccatg

我需要找到' atg'从角色7或角色7-9开始,任何一种方式都可行。我不想找到' atg'在字符串的末尾。我知道LIKE但是无法找到如何将它用于特定位置。

谢谢

2 个答案:

答案 0 :(得分:0)

在MS Access中,您可以将其写为:

where col like '???????atg*' or
      col like '????????atg*' or
      col like '?????????atg*'

但是,如果您对此类比较感兴趣,可以考虑使用支持正则表达式的数据库。

答案 1 :(得分:-1)

如果你看一下this page,你会发现LIKE完全有能力做你想做的事。要查找某些内容,例如3 char偏移量,您可以使用类似

的内容
SELECT * FROM SomeTable WHERE [InterestingField] LIKE '___FOO%'

' _' (下划线)是任何字符的位置标记。有3"任何字符"模式中的标记,带有尾随'%',表示上述SQL将匹配FOO从第四个字符开始的任何内容,然后是其他任何内容(包括任何内容)。

要查找7个字符,请使用7个下划线。

如果这不是很清楚,请告诉我。

编辑:我引用了SQL Server的东西,而不是Access。交换'?'在哪里' _',使用' *'而不是'%',而是查看this link

修订查询:

SELECT * FROM SomeTable WHERE [InterestingField] LIKE '???FOO*'