[ SQL ] 대소문자를 구분하지 않는 SQL 문 작성

2024. 3. 11. 19:02· LANGUAGE/└ Database

환경 : Spring Tool Suite4

 

 

대소문자를 구별하려면, 아무런 조건을 달아주지 않으면 되는 반면,

대소문자 구별을 무시하기 위해선 upper() 를 작성해줘야한다.

 

	public List<ProductDto> selectList(String column, String keyword) {
		String sql = "select * from menu "
//			+ "where instr("+column+", ?) > 0 "//대소문자 구별
			+ "where instr(upper("+column+"), upper(?)) > 0 "//대소문자 무시
			+ "order by "+column+" asc, menu_no asc";
		Object[] data = {keyword};
		return jdbcTemplate.query(sql, mapper, data);
	}

 

위 자바 코드를 sql문으로 보면 아래와 같다.

select * 
from product
where instr(upper(product_name), upper(?)) > 0 
order by product_name asc, product_id asc;

   (+) upper(product_name) : product_name 값을 전부 대문자로 변경

   (+) 지정된 문자열(?로 표시된 값)이 처음으로 나타나는 위치를 반환

 

 

 

 

개인 공부 기록용입니다:)

728x90