2014-02-16 46 views
0

我正在尋找可以包裝SELECT操作的行爲與LIKE操作類似的操作符(但不是在WHERE子句中使用它,在SELECT表達式上使用它),並且將返回該表達式。東西,可以這樣操作:在SELECT中的MySQL部分匹配

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

但是,而不是使用左,像,使用某種的兩個組成,如:

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

這是一個簡單的例子,但更多的複雜部分匹配我需要使用大量的數學抽象的在這裏處理這種只給定的字符串操作:http://dev.mysql.com/doc/refman/5.7/en/string-functions.html

+1

你想返回什麼結果集? MySQL會爲'SELECT(MutationGRCh37 LIKE'_:%')' –

+0

...'這樣的表達式返回'1/0',但是我懷疑你所追求的模式是由'_:%'匹配的模式。' –

回答

1

如果你想獲得冒號前的一切,你可以使用substring_index()

select substring_index(MutationGRCh37, ':', 1) 
. . . 

所以,如果該列包含'abc:123',那麼這將返回'abc'

+0

我可以做些什麼,這樣substring_index可以處理空的表達式,而不是空的,但沒有':'分隔符? – fatsokol

+1

@fatsokol。 。 。如果沒有':',那麼'substring_index()'參數爲'1'將返回整個字符串。你仍然可以使用where子句過濾器。 –