なので、「%」や「_」を含むデータ(「5%」とか「(^_^)」みたいな文字列)を抽出したいときは、エスケープしてやる必要があります。
具体的には、LIKE句の後ろにESCAPE句を記述して、エスケープ文字を指定し
エスケープしたい文字の直前に指定したエスケープ文字を 入れます。
SELECT * FROM [table1] WHERE [field1] LIKE '%5¥%%' ESCAPE '¥'
これで、[field1]に「5%」を含むレコードが抽出されます。
エスケープ文字は、「/」とか使わない文字ならなんでも良さそうです。
また、SQLServerなら、「[ ]」(角カッコ)で囲んでも検索出来ます。
SELECT * FROM [table1] WHERE [field1] LIKE '%5[%]%'
今までそういう検索をすることがなかったので、つい最近初めて知りました。
ちょっとググったら、ESCAPE句はOracleMasterの問題とかにもなってたので、
もしかして常識なのか?