채택완료

sql 비교 부분에 대해 그누의 선배분들께 질문드립니다.

2015-03-20 (금) 23:08:31 2,585

여러 선배님께 자문을 구하나니 부디 굽어 살피시어 저에게 가르침을 내려주시옵소서...

질문 드립니다.

예를 들어 게시물 리스트에서 검색을 할때 wr_8 에 저장되어 있는 값들을 비교하고자 합니다.

wr_8 에는 400 부터 2000까지의 수가 들어있습니다.

wr_8을 검색합니다. 400 ~ 900 이라고 입력하면 

select distinct wr_parent from g4_write_test where (wr_8 between '400' and '900') and (wr_num between '-6' and '9994') order by wr_num, wr_reply limit 0, 15

 

으로 sql 이 돌아가고 정상 출력 됩니다.

그런데 400 ~ 1500 이라고 입력하면 

 

select distinct wr_parent from g4_write_test where (wr_8 between '400' and '1500') and (wr_num between '-6' and '9994') order by wr_num, wr_reply limit 0, 15

 

sql은 찍혀 나오는데 리시트에는 게시물이 없습니다. 라고 나옵니다.

 

비교하고자 하는 두수의 자릿수가 같으면 정상 출력이 되는데 왜 자릿수가 달라지면 출력이 되지 않을까요?

 

질문이 너무 두서없는듯 합니다......ㅠ.ㅠ

 

그저 뉴비의 두서없는 질문에 너그러우신 선배님들의 답변을 바랍니다.....

 

감사합니다.

 

|

답변 4개 / 댓글 1개

채택된 답변
+20 포인트

문자열로 비교를 하기 때문에~~ 아래처럼 해보세요

wr_8 *1  between '400' and '1500' 

2015-03-24 (화) 21:57:29

아~~ 균이님 감사합니다. 이런식으로 sql 한개 또 배우게 되네요.

고맙습니다.

2015-03-24 (화) 19:12:40

균이님 감사합니다.

그런데 한가지 또 궁금한것이 생겨버렸네요.

wr_8 *1  between '400' and '1500' 

 

여기서 *1 은 무엇을 위해 존재하나요?

 

하는 역활이 뭐예요?

 

궁금합니다.....ㅠ.ㅠ​

답변에 대한 댓글 1개

wr_8 에다 1을 곱해버리니 문자형이 숫자가 되는 것입니다
2015-03-20 (금) 23:36:06

wr_8...  varchar 타입이라 그런거 아닐까요? 형변환 하고 시도해보시죠...

아니면 다른 전문가께서..ㅡ.ㅡ;;​

답변을 작성하려면 로그인이 필요합니다.