• ベストアンサー

LIKE文でエスケープ文字自体をエスケープする方法

SQLのLIKE文では A LIKE '\%文章' ESCAPE '\' のように、ワイルドカード用の文字列をエスケープする方が用意されています。このとき、条件文にエスケープ文字自体を含める(上のSQL文であれば、「\」をエスケープ文字と定義していながらも、「\%」を「\」「%」と独立した文字として検索にかける)場合はどのように記述したらよいでしょうか。

  • MySQL
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • xKENx
  • ベストアンサー率65% (21/32)
回答No.1

LIKEを使って '\%文章' にマッチさせるには、エスケープ文字自体もエスケープすればいいので、下記でいいと思います。 LIKE '\\\%文章'

Tank2005
質問者

お礼

参考になりました。ご回答ありがとうございます。

関連するQ&A

  • MSアクセス2013のSQLでESCAPE文字指定

    MSアクセス2013のSQLでLIKE検索時のエスケープ文字を別の文字に変更する ESCAPEキーワードを記述したら『演算子がありません』とエラーになったのですが 使えないんですか? select * from テーブル where 項目 like 'abc' ESCAPE '#' ;

  • 文字列’%’の検索方法

    文字列’%’を検索したいのですが、 どのようにSQL文を記述すれば よいのでしょうか? 教えてください。

  • SQL文のエスケープについて質問です。

    SQL文のエスケープについて質問です。 <table></table><tr></tr>=:<%' というデータをDBに登録したいのですが、 置換文字を求められてしまい、うまくいきません。 どのようにエスケープすれば良いのでしょうか。

  • access カッコ ”[” のエスケープについて

    access2007で以下のsqlで思うような結果が得られません。 [あ]という文字を完全一致で検索する。 where title like '[[あ]]' カッコのエスケープの仕方がよくないのでしょうか? よろしくおねがいします。

  • Access2007 Like と Notlike

    フォームに数個テキストボックスがあり任意の文字列で検索できるようにしていますが、 ”この文字列を含まないもの” という検索もできると検索精度が上がります。 クエリの1つのフィールドの抽出条件に  Like "*" & form!フォーム名!テキストボックス1 & "*" And Not like "*" & form!フォーム名!テキストボックス2 & "*" ということがしたいのですがうまくいきません・・・ (Like と Not Like が混在は無理 というのも理解できるのですが…) form!フォーム名!テキストボックス1 → この部分に直接文字列を記述すると機能するのですが、フォームに入力された文字列を検索 という記述にすると機能しません… フォームのテキストボックスに何も記述されていない時は全部表示するようにしたいです。 こんなことは可能でしょうか? よろしくお願い致します。

    • ベストアンサー
    • MySQL
  • Like文の速度について教えてください

    どなたかSQLについてわかる方教えてください。 以前にLike検索は全件検索だから遅いというのを聞いたのですが、 Selectの条件としてWhereに「Like "A%" and Like "B%"」と設定した時と 「Like "A%"」と「Like "B%"」とを設定した処理を2回に分けて検索した時とでは の検索処理速度的にどちらの方が早いのでしょうか? あと、サーバの負荷はどちらの方がかかるのでしょうか? よろしくお願いします。

  • 文字列のエスケープ処理

    VB6.0を使用してXMLファイルを作成しています。 XMLファイルの値に日本語文字列の場合のみ、エスケープ処理した文字列をセットしなければいけない場所があるのですが、 エスケープ処理した文字列とはどのように実現できるのでしょうか? XML自体があまり詳しくないので、質問内容がおかしいかも知れませんが、どなたかお教えください。 よろしくお願いします。

  • POWERCOBOLのSQL文でLIKEの条件を変数名で指定したいのですが

    POWERCOBOLのSQL文でLIKEの条件を変数名を使った記述方法を教えてください。 タイトル名 LIKE '%AB%' とはできるのですがそうすると'%AB%'で固定されてしまうので'%AB%'を変数にしたいのですがどうすればよいでしょうか。

  • sql文に'"*%|が含む場合の対処法に関して

    sql文に'"*%|が含む場合の対処法に関して 現在システム構築を行っているのですが、お客様の仕様で掲題の文字を制限することができず、LIKE検索などの場合の対処法に困っています。 エスケープ文字などを使用することで対応できることは分かっているのですが、 今回の使用が全ての文字を入力可とするなので、エスケープ文字に割り当てる文字が ありません。 (ちなみにエスケープ文字を"^"とした場合、"^^"としたら後の"^"は文字列として扱われるのか?) こんなときにどんな対応をとったらよいのでしょうか? 誰か知っている方がおられたら教えてください。 開発環境は以下です。 言語:java OS:Windows7 DB:Oracle11g サーバー:Solaris 以上

  • 正規表現でSQLのエスケープ

    C# 2.0 & SQLServer2000 でプログラムを作成しています。 通常のADOではなく、サードパーティーのDBコンポーネントを使ってDB周りはやっているのですが、その際に SQL 文は自分でエスケープしてやる必要があることに後から気付き、正規表現でSQL文をまとめてエスケープすることはできないかと考えています。 正規表現を使って実現したい事は以下です。 ・文字列中の ' (シングルクォート)を '' (シングルクォート2つ)に置換 ・ただし、 where field = 'xxxx' のように文字列を間に入れている場合の ' は置換しない WEBなどで調べても見つかりませんでした。どなたか正規表現に強い方、教えてください。