준비된 문에서 "like" 와일드카드 사용
문제 이해
데이터베이스 쿼리에서 에서 "like" 와일드카드는 일반적으로 키워드 패턴을 기반으로 데이터를 검색하는 데 사용됩니다. 쿼리 보안 및 성능을 강화하기 위해 준비된 문을 사용할 때 "like" 와일드카드를 효과적으로 통합하는 것이 어려울 수 있습니다.
PreparedStatement를 사용한 솔루션
"like"를 사용하려면 준비된 문의 " 와일드카드를 사용하면 SQL 문자열 자체를 수정할 수 없습니다. 대신 명세서에서 설정한 값 내에서 "키워드%"를 설정하세요. 다양한 검색을 수행하는 방법은 다음과 같습니다. 유형:
접두사 일치:
// 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 + "%");
접미사 일치:
pstmt.setString(1, "%" + notes);
글로벌 일치:
pstmt.setString(1, "%" + notes + "%");
준비된 문에 할당된 값에 "keyword%"를 설정하면 쿼리 보안이나 성능을 저하시키지 않고 효율적으로 와일드카드 검색을 수행할 수 있습니다.
위 내용은 준비된 진술에서 'Like' 와일드카드를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!