반응형
준비된 문장에서 "좋아요" 와일드카드 사용
mysql 데이터베이스 쿼리를 실행하기 위해 준비된 문을 사용하고 있습니다.그리고 특정 키워드를 기반으로 검색 기능을 구현하고 싶습니다.
그러기 위해서는LIKE
키워드, 그 정도는 알고 있어요.그리고 나도 전에 준비된 문장을 사용한 적이 있지만, 어떻게 사용하는지 모르겠다.LIKE
왜냐하면 다음 코드로부터, 나는 어디에 그 코드를 추가할 것인가?'keyword%'
?
에서 직접 사용할 수 있습니까?pstmt.setString(1, notes)
~하듯이(1, notes+"%")
아니면 그런 비슷한 것.웹에서 많은 글을 볼 수 있지만 어디에도 좋은 답이 없다.
PreparedStatement pstmt = con.prepareStatement(
"SELECT * FROM analysis WHERE notes like ?");
pstmt.setString(1, notes);
ResultSet rs = pstmt.executeQuery();
이 값은 준비된 문 SQL 문자열이 아닌 값 자체로 설정해야 합니다.
따라서 프리픽스 일치에 대해 다음과 같이 해야 합니다.
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);
또는 글로벌 일치:
pstmt.setString(1, "%" + notes + "%");
다음과 같이 코드화합니다.
PreparedStatement pstmt = con.prepareStatement(
"SELECT * FROM analysis WHERE notes like ?");
pstmt.setString(1, notes + "%");`
다음과 같은 따옴표 '는 예외의 원인이 되므로 포함하지 마십시오.
pstmt.setString(1,"'%"+ notes + "%'");
를 사용할 수 있습니다.CONCAT
SQL 함수
PreparedStatement pstmt = con.prepareStatement(
"SELECT * FROM analysis WHERE notes like CONCAT( '%',?,'%')";
pstmt.setString(1, notes);
ResultSet rs = pstmt.executeQuery();
이건 제 경우에 딱 맞습니다.
PreparedStatement ps = cn.prepareStatement("Select * from Users where User_FirstName LIKE ?");
ps.setString(1, name + '%');
이거 한번 써보세요.
String fname = "Sam\u0025";
PreparedStatement ps= conn.prepareStatement("SELECT * FROM Users WHERE User_FirstName LIKE ? ");
ps.setString(1, fname);
String query="select * from test1 where "+selected+" like '%"+SelectedStr+"%';";
PreparedStatement preparedStatement=con.prepareStatement(query);
// where seleced and SelectedStr are String Variables in my program
언급URL : https://stackoverflow.com/questions/8247970/using-like-wildcard-in-prepared-statement
반응형
'programing' 카테고리의 다른 글
도대체 봄콩이란 무엇일까요? (0) | 2022.06.26 |
---|---|
목록 또는 세트의 첫 번째 요소를 얻는 방법 (0) | 2022.06.26 |
Vue 2에 css 파일을 포함하는 방법 (0) | 2022.06.26 |
Windows에서 JAR 파일 실행 (0) | 2022.06.26 |
Vuex의 작업 방법 지연 시뮬레이션 (0) | 2022.06.26 |