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 サイトの他の関連記事を参照してください。