SELECT ProductNumber, Name, ListPrice
FROM SalesLT.Product
WHERE ProductNumber LIKE 'BK-[^R]%-[0-9][0-9]';'BK-M47B-38'
我想要的产品是:以“BK-”开头,后跟任何其他字符
比“R”,并以“-”结尾,后跟任意两个数字
。
上面是 ms-sql
查询,我想要此查询的 mysql 版本
产品编号如下:
'BK-M47B-40'
'BK-M82B-44'
'FR-R38B-60'
'ST-9828'
最佳答案
等效的正则表达式非常相似:
SELECT ProductNumber, Name, ListPrice
FROM SalesLT.Product
WHERE ProductNumber REGEXP '^BK[-][^R].*[-][0-9]{2}$'
主要区别:
^
和$
标记字符串的开头和结尾(否则,正则表达式会匹配字符串中的任何位置。%
-->.*
- {2} 是可选的,但在重复模式的正则表达式中更加通俗。注意:您也可以使用
[:digit]
,但输入时间较长。 - 我忘记了连字符是否是特殊字符,所以我只是将它放在方括号中。
关于mysql中使用正则表达式进行mysql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33582974/