在mySQL正则表达式中转义问号

Moj*_*ili 1 regex mysql sql

我有一个使用正则表达式的简单查询。我不知道为什么每次尝试运行它时都会返回错误。

select *
from mytable
where thumbnail_url regexp '^\?.+'
Run Code Online (Sandbox Code Playgroud)

基本上,我想查看此列表中是否有任何字符串以问号开头。我通过 MySQLWorkbench 6.3 连接到 Amazon RDS。

Mic*_*ski 5

当您在 MySQL 中使用反斜杠转义正则表达式字符时,您还必须将反斜杠本身转义为\\. MySQL 会看到单个\字符并尝试将其用作 SQL 语句本身中的转义字符,而不是将其视为文字。但是您需要它作为文字来修改?正则表达式中的 。

第一个\转义第二个\,产生一个文字正则表达式序列\?来表示?匹配字符串中的单个文字。

关于字符串文字的 MySQL 文档...

使用转义的反斜杠将表达式格式化为:

select *
from mytable
where thumbnail_url regexp '^\\?.+'
Run Code Online (Sandbox Code Playgroud)