묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
포인트 쿼리문 관련..
2015.01.15 01:05
안녕하세요.
모든 회원의 포인트를 '나누기 10' 하고 싶습니다.
즉, 8700포인트를 가지고 있는 사람은 870포인트로..
하지만 이렇게된다면 일의자리는 절삭이 되고 소수점이 남을텐데 이 소수점도 해결 가능한 쿼리문을 작성하고자 하는데, 어떻게 작성하면 좋을까요?
DB 쿼리는 좀 어렵네요 ㅜ.ㅜ
모든 회원의 포인트를 '나누기 10' 하고 싶습니다.
즉, 8700포인트를 가지고 있는 사람은 870포인트로..
하지만 이렇게된다면 일의자리는 절삭이 되고 소수점이 남을텐데 이 소수점도 해결 가능한 쿼리문을 작성하고자 하는데, 어떻게 작성하면 좋을까요?
DB 쿼리는 좀 어렵네요 ㅜ.ㅜ
댓글 6
-
지인에드컴
2015.01.15 02:42
-
키스투엑스이
2015.01.15 08:08
추후 사이트 실사용에 문제가 없다면 상관 없을 것 같습니다.
웬만하면 필드 형식을 바꾸기보다 안건드리는게 좋을것같긴한데,
혹시 모든 사용자의 포인트 1의자리 숫자를 0으로 만든 뒤에 나누기 10을 하는 것이 가능할까요? -
지인에드컴
2015.01.15 13:12
그말은 *10 하고 나누기 한다는 이야기 같은데 맞나요. 그럼 그냥 프로그램에서 처리하는게 나을수 있죠. 아니면 추가 필드만들어서 별도 처리하시는것도 방법이기는하나 실사용에 문제는 없습니다만 이게 경험해 보신것 아닌것 차이가 나올건데 php에서 처리하지 않고 순수하게 sql로 처리 하시는게 맞기는 해요 그럼 속도가 빨라지고 합리적인데 필드 안바꾸시고 하시는게 번거러우실거예요.
-
키스투엑스이
2015.01.16 00:35
헉 그렇네요.. 소수점을 뗀다고 생각하기보다
곱하기 10을 먼저 하고 나누면 되겠네요 -_-;;;
이렇게 간단한걸 생각을 못하다니..
답변 감사합니다. -
무얼까2
2015.01.15 08:51
1의 자리가 없어져도 된다는 뜻인가요?
그러면, 그냥 ceil 함수 쓰시면 될텐데요.
예) Select Ceil(`point`/10) As foo From `xe_point`
만약, 보관해야 한다면, Mod(또는 %)로 10으로 나눈 나머지인 1의 자리 값을 각 회원 extra_vars 같은 곳에 옮겨 놓은 후 위처럼 처리하던가요.
-
XESniper
2015.01.16 14:44
update `xe_point` set point = Ceil(point/10);
이게 진리인듯 하네요 ...
필드 형식을 바꿔야 되는데 그래도 괜찮으신가요. $의경우 소수점 2자리 까지 보통 쇼핑몰에서 지원합니다. 대부분 정수 형식으로 잡으셨다면 이부분은 저장할 방법이 없어지는데 이걸 필드 형태부터 변경하고 작업해야 합니다.