MySQLクエリで_%
_ワイルドカードを使用すると問題が発生します。
http://www.w3schools.com/sql/sql_like.asp
その記事を読んで、私は_%
_を使用していますが、期待していたものがまったく得られませんでした。
次のような一連の値があります
_1_1
1_2
2_1
2_2... etc
_
含む
_11_1
11_2
_
さて、場合によっては、値が_11_2
_、または_1_2
_などであるものを具体的に返したいと思います。これはうまくいきます。
_WHERE fieldName = '11_2'
_
など...予想どおり
ただし、場合によっては、_1
_で始まるすべてのアイテム、または_11
_で始まるすべてのアイテムを検索したいことがあります。
W3Schoolsリンクから、私は期待していた
_WHERE fieldName LIKE '1_%'
_
したがって、_1_
_で始まるものを見つけるには、具体的には、この例では、以下を返します。
_1_1
1_2
_
しかし、それも返します
_11_1
11_2
_
どうしてこれなの?そして、どうすればそれを乗り越えることができますか?
アンダースコアは、単一文字のワイルドカードです。 SQLを次のように変更する必要があります。
WHERE fieldName LIKE '1%'
または、アンダースコアをエスケープできます
WHERE fieldName LIKE '1\_%'