ホームページ > Java > &#&チュートリアル > LIKE を使用した準備済みステートメントでワイルドカードを使用する方法

LIKE を使用した準備済みステートメントでワイルドカードを使用する方法

Linda Hamilton
リリース: 2024-11-15 12:32:02
オリジナル
889 人が閲覧しました

How to Use Wildcards in Prepared Statements with LIKE?

LIKE を使用したプリペアド ステートメント内のワイルドカード クエリ

データベース クエリにプリペアド ステートメントを使用する場合、キーワードを使用した検索機能を実装するには、多くの場合、 LIKE 演算子。このガイドでは、準備済みステートメントを使用してこれを実現する方法に関する包括的なソリューションを提供します。

準備済みステートメントで LIKE 演算子を利用するには、準備済みステートメントに提供される値内の検索語にワイルドカード記号 (%) を追加できます。ステートメント (例:

String notes = "keyword%";
PreparedStatement pstmt = con.prepareStatement(
      "SELECT * FROM analysis WHERE notes LIKE ?");
pstmt.setString(1, notes);
ResultSet rs = pstmt.executeQuery();
ログイン後にコピー

) ワイルドカードを追加して値を設定すると、「notes」列に入力キーワードが含まれるすべてのレコードと一致するクエリが有効になります。 substring.

ただし、%、!、[、_、] などの特定の文字は SQL で特別な意味を持ちます。これらの文字を適切に処理するには、準備されたステートメントで ESCAPE 句を使用してエスケープする必要があります。例:

String notes = "keyword%"
    .replace("!", "!!")
    .replace("%", "!%")
    .replace("_", "!_")
    .replace("[", "![");
PreparedStatement pstmt = con.prepareStatement(
        "SELECT * FROM analysis WHERE notes LIKE ? ESCAPE '!'");
pstmt.setString(1, notes + "%");
ログイン後にコピー

これらの文字をエスケープされたバージョンに置き換えることにより、準備されたステートメントはワイルドカードを正しく解釈し、それに応じてレコードを照合します。

検索要件に応じて、さまざまな一致シナリオを実現するためのワイルドカードの配置:

  • 前方一致: キーワードの末尾に「%」を追加(例: "keyword%")
  • サフィックス一致: キーワードの先頭に "%" が追加 (例: "%" "keyword")
  • グローバル マッチ: "%" が追加キーワードの両端 (例: "%" "keyword" "%")

以上がLIKE を使用した準備済みステートメントでワイルドカードを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート