【发布时间】:2021-07-26 09:57:43
【问题描述】:
我有一个在 PHP 代码中运行良好的正则表达式。当我将它与 MYSQL 查询一起使用时,它会引发错误。
^(?:(?:\+|0{0,2})61(\s*[\-]\s*)?|[0]?)?[4]\d{8}$
请帮我把它转换成MYSQL兼容的正则表达式。
【问题讨论】:
-
什么 MySQL 版本?你有没有尝试过?
-
我在 phpmyadmin 中尝试过以下查询 >> SELECT * FROM
tableWHEREMobile_PhoneREGEXP "^(?:(?:\+|0{0,2})61( \s*[\-]\s*)?|[0]?)?[4]\d{8}$" ORDER BYcreated_atDESC LIMIT 0, 25 它抛出类似 #1267 的错误 - 非法'regexp'操作的排序规则(latin1_general_ci,IMPLICIT)和(utf8mb4_unicode_ci,COERCIBLE)的混合@WiktorStribiżew请帮助转换。谢谢! -
试试
^(([+]|0{0,2})61([[:space:]]*-[[:space:]]*)?|0?)?4[0-9]{8}$ -
太完美了!!感谢您的惊人和快速支持。 :)。请添加解决方案,以便我接受。
-
好的,请给我一两分钟。