在MySQL数据库中搜索时匹配'%'符号

gfi*_*ost 6 mysql wildcard sql-like

我想'wildcard %'在MySQL中匹配这个.
我尝试使用逃生\%,它无法正常工作.

cod*_*ict 5

默认转义字符是\.所以只要前缀%\为:\%:

手册明确表示:

要测试通配符的文字实例,请在其前面加上转义字符.如果未指定ESCAPE字符,则假定为"\".

搜索%Stack%Overflow:

mysql> select 'Stack%Overflow' like '%\%%';
+------------------------------+
| 'Stack%Overflow' like '%\%%' |
+------------------------------+
|                            1 |  <----- Found
+------------------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

搜索%StackOverflow:

mysql> select 'StackOverflow' like '%\%%';
+-----------------------------+
| 'StackOverflow' like '%\%%' |
+-----------------------------+
|                           0 |   <----- Not Found
+-----------------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

编辑:

如果从PHP调用此查询,则必须使用\\.这是因为即使PHP \用作转义字符.所以让MySQL得到\你需要\\的PHP.