SELECT中的MySQL部分匹配

SELECT中的MySQL部分匹配,mysql,sql,regex,sql-like,mysql-5.7,Mysql,Sql,Regex,Sql Like,Mysql 5.7,我正在寻找一个操作符,它可以包装一个行为类似于操作的SELECT表达式(但不是在WHERE子句上使用它,而是在SELECT表达式上使用它),并将返回该表达式。可以这样操作的东西: SELECT LEFT(MutationGRCh37,1) FROM mutationschema.cosmicmutations WHERE MutationGRCh37 LIKE '_:%' 但不要使用left和like,而是使用这两个词的某种组合,比如: SELECT LIKE(MutationGRCh37,'

我正在寻找一个操作符,它可以包装一个行为类似于操作的SELECT表达式(但不是在WHERE子句上使用它,而是在SELECT表达式上使用它),并将返回该表达式。可以这样操作的东西:

SELECT LEFT(MutationGRCh37,1)
FROM mutationschema.cosmicmutations WHERE MutationGRCh37 LIKE '_:%'
但不要使用left和like,而是使用这两个词的某种组合,比如:

SELECT LIKE(MutationGRCh37,'_:%')
FROM mutationschema.cosmicmutations

这是一个简单的例子,但对于更复杂的部分匹配,我需要使用大量数学抽象来处理这个问题,因为这里只提供了字符串操作:

如果您想在冒号之前获取所有内容,可以使用
substring\u index()


因此,如果列包含
'abc:123'
,那么它将返回
'abc'

您想要返回什么结果集?MySQL将返回一个
1/0
表达式,比如
SELECT(MutationGRCh37,比如''.:%')
…但是我怀疑你想要的是模式与
'.'.:%'
匹配。我能做些什么吗?子字符串索引可以处理空表达式,而不是空的,但是没有':'分隔符?@fatsokol。如果没有
:'
,则参数为
1的
子字符串_index()
将返回整个字符串。您仍然可以使用
where
子句过滤器。
select substring_index(MutationGRCh37, ':', 1)
. . .