用于MySQL列中多行数据的正则表达式

用于MySQL列中多行数据的正则表达式,mysql,regex,Mysql,Regex,我有一个包含XML的列,我想使用正则表达式根据条件列出ID 复制到输出文件的部分XML数据: <definitions>^M\ <definition id= ^M\ 请注意,REGEXP可以匹配字符串中的任何位置,而不必在开始处匹配(不像那样),因此在开始处不需要* 8.x之前的MySQL版本不支持类似Perl的速记类,\s在那里无效。在MySQL 8.x中,ICU正则表达式库支持\s 您可以在任何MySQL中使用: where col REGEXP '<

我有一个包含XML的列,我想使用正则表达式根据条件列出ID

复制到输出文件的部分XML数据:

  <definitions>^M\
    <definition id=
^M\

请注意,
REGEXP
可以匹配字符串中的任何位置,而不必在开始处匹配(不像
那样
),因此在开始处不需要
*

8.x之前的MySQL版本不支持类似Perl的速记类,
\s
在那里无效。在MySQL 8.x中,ICU正则表达式库支持
\s

您可以在任何MySQL中使用:

where col REGEXP '<definitions>[[:space:]]+<definition id="1"'

col REGEXP'[[:space:][]+是MySQL 8还是更早版本?尝试
where col REGEXP'[:space:]+
where col REGEXP '<definitions>[[:space:]]*<definition id="1"'