2015-11-07 64 views
0
SELECT ProductNumber, Name, ListPrice 
FROM SalesLT.Product 
WHERE ProductNumber LIKE 'BK-[^R]%-[0-9][0-9]';'BK-M47B-38' 

我想要的產品是:start with 'BK-' followed by any character other than 'R', and ends with a '-' followed by any two numerals。 以上是ms-sql查詢,我想這個查詢的myssql版本 productNumber是象下面這樣:在mysql中使用正則表達式的Mysql查詢

'BK-M47B-40' 
'BK-M82B-44' 
'FR-R38B-60' 
'ST-9828' 

回答

1

等效正則表達式是相當類似的:

SELECT ProductNumber, Name, ListPrice 
FROM SalesLT.Product 
WHERE ProductNumber REGEXP '^BK[-][^R].*[-][0-9]{2}$' 

主要差異:

  • ^$標記開頭和字符串的結尾(否則,正則表達式的字符串中的任何匹配。
  • % - >.*
  • {2}是可選的,但在正則表達式中用於重複模式的口語更多。注意:您也可以使用[:digit],但輸入時間較長。
  • 我忘了連字符是否是特殊字符,所以我只是把它放在方括號中。
1

使用RLIKE:

SELECT * 
FROM Product 
WHERE ProductNumber RLIKE '^BK-[^R].*-[0-9][0-9]$'; 

SqlFiddleDemo