본문 바로가기
[DBMS]/- Oracle

[Oracle]Like 조건절 검색

by Hapco 2022. 5. 31.
728x90
반응형
String id ="t";
		Class.forName("oracle.jdbc.OracleDriver");
		Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe",
        "kh", "kh");
		
		
		//String sql = "select * from member where member_id like '%'||?||'%'";
		//String sql = "select * from member where instr(member_id , ?) >0";
		String sql = "select * from member where regexp_like(member_id ,?)";
		PreparedStatement ps = con.prepareStatement(sql);
		
		ps.setNString(1, id);
		ResultSet rs =ps.executeQuery();
		
		while(rs.next()) {
			System.out.print(rs.getString("member_id"));
			System.out.print("/");
			System.out.print(rs.getDate("member_birth"));
			System.out.print("/");
			System.out.print(rs.getString("member_email"));
			System.out.print("/");
			System.out.print(rs.getString("member_phone"));
			System.out.print("/");
			System.out.print(rs.getDate("member_join"));
			System.out.print("/");
			System.out.print(rs.getInt("member_point"));
			System.out.print("/");
			System.out.println(rs.getString("member_grade"));
		}
		
		con.close();
		System.out.println("조회완료");
	}

}

우리가 여기서 관심있게 볼 구문은

String sql = "select * from member where member_id like '%'||?||'%'";

String sql = "select * from member where instr(member_id , ?) >0";

String sql = "select * from member where regexp_like(member_id ,?)";

유사한 아이디가 있으면 찾아내라 / 유사한 내용이 있으면 찾아내라.

여기서 문제가되는 구문은

String sql = "select * from member where member_id like '%'||?||'%'";

여기서는 문자열을 합성해야한다 '%?%' 로 작성시 인덱스 오류발생 ★★

'[DBMS] > - Oracle' 카테고리의 다른 글

[Oracle] jdbc (Select 원하는 항목 검사 )  (0) 2022.05.31
[Oracle] jdbc , 단일조회  (0) 2022.05.31
[Oracle]Select  (0) 2022.05.31
[Oracle]update  (0) 2022.05.31
[Oracle]delete기초  (0) 2022.05.31

댓글