ホームページ > Java > &#&チュートリアル > MySQL クエリのプリペアド ステートメントで LIKE ワイルドカードを使用する方法は?

MySQL クエリのプリペアド ステートメントで LIKE ワイルドカードを使用する方法は?

Patricia Arquette
リリース: 2024-11-15 09:11:03
オリジナル
876 人が閲覧しました

How to Use LIKE Wildcard with Prepared Statements in MySQL Queries?

MySQL クエリでのプリペアド ステートメントでの LIKE ワイルドカードの使用

MySQL データベース クエリでは、LIKE 演算子を使用してパターンベースの検索が可能です。プリペアド ステートメントを使用してこのようなクエリを実行する場合、LIKE ワイルドカードを正しく組み込むことが重要です。

共通の要件の 1 つは、前方一致検索を実行することです。これを実現するには、キーワード%を検索語に追加する必要があります。ただし、準備されたステートメントを使用する場合、ワイルドカードをパラメーター値に直接連結するのは正しくありません。

代わりに、準備されたステートメントのクエリ内で値自体を設定します。接頭辞一致の場合は、検索語を次のように変更します。

notes = notes
    .replace("!", "!!")
    .replace("%", "!%")
    .replace("_", "!_")
    .replace("[", "![");

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

ESCAPE キーワードは、ワイルドカード内の特殊文字をエスケープするために使用されるエスケープ文字を示します。デフォルトではバックスラッシュ () ですが、任意の文字に変更できます。

同様に、サフィックス一致の場合は次を使用します。

pstmt.setString(1, "%" + notes);
ログイン後にコピー

グローバルの場合match:

pstmt.setString(1, "%" + notes + "%");
ログイン後にコピー

検索語にワイルドカードを設定すると、プリペアド ステートメントで LIKE 演算子を効果的に使用して、MySQL データベースでさまざまなパターンベースの検索を実行できます。

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

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