我正在将我的MariaDB迁移到MySQL,并且遇到了很多差异。
我有一个非常简单的查询,可在Maria DB中产生结果(197),但在mySQL中为零,任何人都可以帮忙吗?
SELECT DISTINCT title FROM films where title REGEXP 'The \\w{4}[^\\s]*\\b'
数据库完全相同(从MariaDB导出到MySQL,没有问题)。
在MySQL 5.7中,你必须使用类似POSIX的正则表达式库并使用
SELECT DISTINCT title FROM films where title REGEXP 'The [[:alnum:]_]{4}[^[:space:]]*[[:>:]]'
另外,请注意,此处的正则表达式匹配不区分大小写,如果The
只需要匹配The
而不能匹配THE
,则需要在之后添加BINARY
关键字REGEXP
。
这里,
[[:alnum:]_]{4}
--\w{4}
四个字符的字符,字母,数字或下划线[^[:space:]]*
--\S*
零个或多个非空白字符[[:>:]]
--\b(?!\w)
右(后)字边界
谢谢@WiktorStribiżew我已经在两个DB上重新运行了查询,结果现在匹配了,坏消息是我将必须重做我的所有正则表达式以适应POSIX!
嗨,维克多(Wiktor),我确实投票赞成,但我还没有得到15分代表,所以它不会显示;)