我有一个包含值作为字符串的列。我只需保留包含以下子字符串之一的字符串:|MB1
,|MB2
,|MB3
,|MB4
,|MB5
和|MB6
。
我的出发点是:
select * from table
where column like '%|MB_%';
但是,这会使任何其他行保留|MBa
或其他值。我如何摆脱它们?
P.S。我正在使用MySQL
答案 0 :(得分:3)
您可以使用MySQL regular expression pattern matching;
WHERE `column` REGEXP '\\|MB[1-6]'
模式'\\|[1-6]'
可以按如下方式进行分析:
\\
是文字反斜杠的字符串编码,它是正则表达式转义字符,因此
|
没有特殊含义(如果不通过反斜杠转义,则表示交替,这将导致在这种情况下无效模式)
MB
是文字字符
[1-6]
代表1
到6
范围内的单个字符