为什么此查询返回太多结果?

时间:2012-06-20 13:50:23

标签: mysql

我有一个mysql查询

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

我想匹配

  • glasshouse_1_20122204123455
  • glasshouse_1_20122206102415

但不是

  • glasshouse_18_20122206102415

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

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:4)

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

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

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

并且您不希望下划线成为搜索助手,您必须使用\ \_来逃避它。

答案 2 :(得分:3)

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