3

私はmysqlクエリを持っています

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

合わせたい

  • glasshouse_1_20122204123455
  • glasshouse_1_20122206102415

だがしかし

  • glasshouse_18_20122206102415

しかし、その3つすべてに一致します。理由を知っている人はいますか?_ は mysql で特別な意味を持っていますか?

4

3 に答える 3

5

アンダースコアは任意の1文字と一致するため

于 2012-06-20T13:52:54.343 に答える
4

リクエストが正しく機能するには、アンダースコアをエスケープする必要があります。

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

Info: LIKE と NOT LIKE には 2 つの検索ヘルパー シンボルがあります。1 文字を検索するアンダースコア _ 文字と、0 個以上の文字を検索するパーセンテージ % 文字。

また、アンダースコアを検索ヘルパーにしたくない場合は、\likeでエスケープする必要があります\_

于 2012-06-20T13:55:12.000 に答える
3

はい、_MySQL では LIKE は正確に 1 文字に一致します。

于 2012-06-20T13:53:51.333 に答える