如何过滤以任何数字结尾的特定字符集?

时间:2015-09-23 10:38:55

标签: mysql sql

我有一个包含值作为字符串的列。我只需保留包含以下子字符串之一的字符串:|MB1|MB2|MB3|MB4|MB5|MB6

我的出发点是:

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

但是,这会使任何其他行保留|MBa或其他值。我如何摆脱它们?

P.S。我正在使用MySQL

1 个答案:

答案 0 :(得分:3)

您可以使用MySQL regular expression pattern matching;

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

模式'\\|[1-6]'可以按如下方式进行分析:

  • \\是文字反斜杠的字符串编码,它是正则表达式转义字符,因此

  • |没有特殊含义(如果不通过反斜杠转义,则表示交替,这将导致在这种情况下无效模式)

  • MB是文字字符

  • [1-6]代表16范围内的单个字符