Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 用于从SELECT查询中选择特定字符串模式的Regexp正则表达式 字符串将被认为是有效的,如果它从字母MS开始,并且必须包含0~9的数值,允许的最大数值是7。p>_Mysql_Regex - Fatal编程技术网

Mysql 用于从SELECT查询中选择特定字符串模式的Regexp正则表达式 字符串将被认为是有效的,如果它从字母MS开始,并且必须包含0~9的数值,允许的最大数值是7。p>

Mysql 用于从SELECT查询中选择特定字符串模式的Regexp正则表达式 字符串将被认为是有效的,如果它从字母MS开始,并且必须包含0~9的数值,允许的最大数值是7。p>,mysql,regex,Mysql,Regex,有效字符串: 无效螫针: 这是我尝试的查询,我得到的是空白结果。我错在哪里 SELECT MY_STRING_COLUMN FROM MY_TABLE_NAME WHERE `MY_STRING_COLUMN` REGEXP '^[MS]{2}\d{7}'; 我从中获得的参考尝试使用[0-9]表示正则表达式模式中的数字: SELECT MY_STRING_COLUMN FROM MY_TABLE_NAME WHERE MY_STRING_COLUMN REGEXP '^MS[0-9]{7}$

有效字符串:

无效螫针:

这是我尝试的查询,我得到的是空白结果。我错在哪里

SELECT MY_STRING_COLUMN
FROM MY_TABLE_NAME
WHERE  `MY_STRING_COLUMN` REGEXP '^[MS]{2}\d{7}';
我从中获得的参考

尝试使用[0-9]表示正则表达式模式中的数字:

SELECT MY_STRING_COLUMN
FROM MY_TABLE_NAME
WHERE MY_STRING_COLUMN REGEXP '^MS[0-9]{7}$';

还请注意,如果要在字符串开头匹配MS,只需使用^MS。

删除括号和量词{2},在8之前添加锚点-^MS\d{7}$MySQL 8+/^MS[0-9]{7}$MySQL。[MS]只匹配单个字符M或S,因此[MS]{2}匹配MM、SS、SM或MS。如果没有$,您可以在字符串开头匹配模式,但以后可能会有更多内容。@WiktorStribiżew我不确定\d是否适用于MySQL的REGEXP。@TimBiegeleisen它将在MySQL 8中使用。xHow你知道OP使用的是MySQL 8+?很多人正在迁移到新版本。谢谢。。让我运行这个REGEXP!注意:MySQL 8.0和MariaDB不允许\d。
SELECT MY_STRING_COLUMN
FROM MY_TABLE_NAME
WHERE  `MY_STRING_COLUMN` REGEXP '^[MS]{2}\d{7}';
SELECT MY_STRING_COLUMN
FROM MY_TABLE_NAME
WHERE MY_STRING_COLUMN REGEXP '^MS[0-9]{7}$';