2011-12-18 2 views
1
mysql> select 'ab' like 'a_%'; 
+-----------------+ 
| 'ab' like 'a_%' | 
+-----------------+ 
|    1 | 
+-----------------+ 
1 row in set (0.00 sec) 

mysql> select 'ab' like 'a\_%'; 
+------------------+ 
| 'ab' like 'a\_%' | 
+------------------+ 
|    0 | 
+------------------+ 
1 row in set (0.00 sec) 

mysql> select 'a_b' like 'a\_%'; 
+-------------------+ 
| 'a_b' like 'a\_%' | 
+-------------------+ 
|     1 | 
+-------------------+ 
1 row in set (0.00 sec) 

なぜ私は_をエスケープする必要がありますか?MySQLでなぜ特別なのですか?

+3

「アンダースコアのようなmysqlの」のためのGoogle検索は、あなたが必要な情報を発見しただろう。 (「mysql underscore」だけでも)。 –

答えて

9

_%は両方ともLIKEの特殊文字です。

_は、任意の文字数の1文字に一致します。%

0
"_" means underscore. I think "_" used for hiding any character under it. It is special because we can place character for it. 

あなたはこれらのリンクから多くを得ることができます。

link1

link2

link3

link4

link5

link6

関連する問題