プリペアドステートメントでの "like" ワイルドカードの使用
SQL でプリペアドステートメントを使用してキーワードに基づく検索機能を実装する場合、 LIKE キーワード。ただし、プリペアド ステートメントにキーワード テキストを組み込む方法を理解するのは混乱する可能性があります。
プリペアド ステートメントでキーワード テキストを指定するには、プリペアド ステートメントの SQL 文字列ではなく、値自体の中にキーワード テキストを設定することが重要です。 。したがって、接頭辞一致 LIKE 検索を実装する適切な方法は次のようになります:
notes = notes .replace("!", "!!") .replace("%", "!%") .replace("_", "!_") .replace("[", "!["); PreparedStatement pstmt = con.prepareStatement( "SELECT * FROM analysis WHERE notes LIKE ? ESCAPE '!'"); pstmt.setString(1, notes + "%");
代わりに、同様の手法を使用して接尾辞一致およびグローバル一致バリアントを実装できます:
// Suffix match pstmt.setString(1, "%" + notes); // Global match pstmt.setString(1, "%" + notes + "%");
これらの手法を使用すると、準備されたステートメント内で LIKE キーワードを効果的に利用して、MySQL クエリでキーワードベースの検索を実行できます。
以上がMySQL でのキーワードベースの検索の準備されたステートメントで LIKE ワイルドカードを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。