>  기사  >  Java  >  준비된 진술에서 'Like' 와일드카드를 사용하는 방법은 무엇입니까?

준비된 진술에서 'Like' 와일드카드를 사용하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-19 14:13:02949검색

How to Use the

준비된 문에서 "like" 와일드카드 사용

문제 이해

데이터베이스 쿼리에서 에서 "like" 와일드카드는 일반적으로 키워드 패턴을 기반으로 데이터를 검색하는 데 사용됩니다. 쿼리 보안 및 성능을 강화하기 위해 준비된 문을 사용할 때 "like" 와일드카드를 효과적으로 통합하는 것이 어려울 수 있습니다.

PreparedStatement를 사용한 솔루션

"like"를 사용하려면 준비된 문의 " 와일드카드를 사용하면 SQL 문자열 자체를 수정할 수 없습니다. 대신 명세서에서 설정한 값 내에서 "키워드%"를 설정하세요. 다양한 검색을 수행하는 방법은 다음과 같습니다. 유형:

  1. 접두사 일치:

    // Replace escape characters to prevent conflict with wildcard
    notes = notes
     .replace("!", "!!")
     .replace("%", "!%")
     .replace("_", "!_")
     .replace("[", "![");
    PreparedStatement pstmt = con.prepareStatement(
         "SELECT * FROM analysis WHERE notes LIKE ? ESCAPE '!'");
    pstmt.setString(1, notes + "%");
  2. 접미사 일치:

    pstmt.setString(1, "%" + notes);
  3. 글로벌 일치:

    pstmt.setString(1, "%" + notes + "%");

준비된 문에 할당된 값에 "keyword%"를 설정하면 쿼리 보안이나 성능을 저하시키지 않고 효율적으로 와일드카드 검색을 수행할 수 있습니다.

위 내용은 준비된 진술에서 'Like' 와일드카드를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.