2015-09-23 61 views
0

我有一個包含值作爲字符串的列。我只需要保留那些包含以下子字符串之一:|MB1,|MB2,|MB3,|MB4,|MB5|MB6如何篩選以任何數字結尾的特定字符集?

我的出發點是:

select * from table 
where column like '%|MB_%'; 

然而,這能讓任何其他行與值,如|MBa或他人。我如何擺脫它們?

P.S.我正在使用MySQL

+0

無論你做什麼或爲每一個,或使用正則表達式,或結合LIKE與專項檢查工作字符編號4是數字之一。 – jarlh

+0

你正在使用哪個dbms? (其中一些有LIKE擴展名,類似於正則表達式...) – jarlh

回答

3

您可以使用MySQL的regular expression pattern matching;

WHERE `column` REGEXP '\\|MB[1-6]' 

圖案'\\|[1-6]'可分析如下:

  • \\是編碼字符串反斜槓,這是正則表達式轉義字符的,以便

  • |沒有特別的含義(如果沒有被反斜線轉義,則表示交替,這將導致在這種情況下的無效模式)

  • MB是文字符號

  • [1-6]代表的範圍1內的單個字符通過對6

+0

對你的正則表達式有很好的解釋! +1 –

相關問題