1,619
yesterday 1,399
visitor 24,796,427

SQL

3

각 DBMS에 따른 ibatis에서 like 검색

조회 수 27309 추천 수 0 2011.10.19 14:00:08

MySQL에서 LIKE검색쿼리를 작성하던중, LKIE검색이 내가 자주 사용하던 ORACLE과 틀려서 정리해보았다

 

MySQL :

SELECT * FROM tbl_name WHERE column_name LIKE "%$username$%"

SELECT * FROM tbl_name WHERE column_name LIKE CONCAT('%', #username#, '%')

 

ORACLE :

SELECT * FROM tbl_name WHERE column_name LIKE  '%' || #username# || '%'

 

SYBASE/SQL SERVER

SELECT * from tbl_name WHERE column_name LIKE  '%' + #username# + '%'

 

변수명을 #로 둘러싸는 것과 $로 둘러싸는것의 차이점

#의 경우에는 Prepare Statement로 등록이 된다. 디버그를 찍어봐도 ?로 치환된 이후 값이 대입된다.

하지만 $의 경우 바로 값이 치환된다. 특정 변수가 바로 DB에 입력되므로 보안에 좀더 신경을 써야 할것으로 생각된다.

 

될수있으면 LIKE CONCAT('%', #username#, '%')과 같은 방법을 사용하는게 좋을 듯 하다.

 

 

'헬로마켓'과 함께하는 스마트한 중고 아이템 거래

https://www.hellomarket.com

문서 첨부 제한 : 0Byte/ 2.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수
3 MyBatis 동적 SQL 사용 시 java.lang.NumberFormatException: For input string 에러 해결 제리 2013-07-22 91875
» 각 DBMS에 따른 ibatis에서 like 검색 제리 2011-10-19 27309
1 아이바티스 쿼리 한글 깨질때 제리 2011-10-19 27854

Program Note 로그인 :)