如何搜索子序列

How to search as subsequence

我想在数据库 table 和 return 中搜索作为另一个字符串的子序列的任何字符串。

当我想搜索与另一个字符串相等的字符串时,我使用以下命令:

SELECT kmer from data where kmer="ATCG"

假设 kmer = "ATCG",将进行匹配。但是,如果我想作为子序列进行搜索怎么办?类似于以下内容:

SELECT kmer from data where kmer in "XXATCGXX"

但显然,这种语法是不正确的。这些字符串是静态的,我无法在 LIKE 语法中使用通配符。

明确地说,以下任何值都应该 return 匹配:

X
XX
XAT
XATC
ATC
TC
GX
CGXX
A
T
C
G

仅举几个例子。这些都是 "XXATCGXX" 的子序列,所以我可以使用 wildcats 来涵盖所有这些可能性吗?

LIKE 通常与左边的列值一起使用,但正如三十二上校所说,您可以反转比较:

SELECT kmer FROM data WHERE 'XXATCGXX' LIKE '%' || kmer || '%';