3

我有一个mysql查询

Select * from tbl_schoolphotos where Filename like 
         'glasshouse_1_%' order by DateTaken

我想匹配

  • 温室_1_20122204123455
  • 温室_1_20122206102415

但不是

  • 温室_18_20122206102415

但它匹配所有三个。有谁知道为什么?_在mysql中有特殊含义吗?

4

3 回答 3

5

因为下划线匹配任何单个字符

于 2012-06-20T13:52:54.343 回答
4

请求必须转义下划线才能正常工作。

    Select * from tbl_schoolphotos where Filename like 
             'glasshouse\_1\_%' order by DateTaken

信息:LIKE 和 NOT LIKE 有两个搜索助手符号。查找一个字符的下划线 _ 字符和查找零个或多个字符的百分比 % 字符。

而且您不希望下划线成为搜索助手,您必须使用\like对其进行转义\_

于 2012-06-20T13:55:12.000 回答
3

是的,_在 MySQL 中 LIKE 只匹配一个字符。

于 2012-06-20T13:53:51.333 回答