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

时间:2010-12-04 06:14:29

标签: mysql wildcard sql-like

我想在MySQL中匹配这个'wildcard %' 我尝试使用转义\%但它无效。

5 个答案:

答案 0 :(得分:5)

默认转义字符为\。因此,只需在%前加\作为:\%

manual清楚地说:

  

测试a的文字实例   外卡字符,在它之前   逃避性格。如果你不   指定ESCAPE字符,“\”是   假设

%中搜索Stack%Overflow

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

%中搜索StackOverflow

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

修改

如果从PHP调用此查询,则必须使用\\。这是因为即使PHP使用\作为转义字符。因此,让MySQL获得\,你需要在PHP中拥有\\

答案 1 :(得分:0)

以下是一个例子:

$sql = 'SELECT * FROM tableName WHERE fieldName LIKE "wildcard\%"';

答案 2 :(得分:0)

好的我需要使用doble (\\)来匹配数据库中的%

答案 3 :(得分:0)

你需要在PHP字符串中转义\,否则PHP会认为你实际上是在转义%,因此将文字%发送到sql查询,所以我认为这应该有效:

mysql_query("select * from bla where bli like '\\%somewords\\%'");

答案 4 :(得分:0)

在最新版本中,您也可以尝试

select * from tbl1 where TxtExpr REGEXP '^%';

问候