ㅇ벗어서 못보는 이글루

melt2ng.egloos.com

포토로그




아 ㅋㅋ 안드로이드 파이어폭스 ㅋㅋㅋ 어려운 상대였다 잡담

ㅠㅜㅠㅠ


모바일에서 파이어폭스 를 사용하여 접속하시는 분 덕에 문제가 해결됐습니다

저 경로를 통해 이용하면자꾸 사이트가 죽어버렷..

pc 파폭을 쓰는지라 왜 그럴까 고민을 해봤지만
별 수 있나요 아는게 있어야 실마리가 보이지;


어리석게도 직접 모바일 파이어폭스로 테스트해볼 생각을 못한 나 자신이 부끄럽다..
푸힝

메타 태그 의 위치와, 메타 태그와 폼 안에는 항상 utf-8 을 꼬박꼬박 써주는걸로..



db 칼럼 타입을 항상 생각하면서 url 의 id 값이나 이것저것을 어떤 타입으로 받고, 바꿀지 항상 체크하는 습관을 가져야..

아이고

다양한 접속 환경을 생각해야.. ㅠㅠㅠㅠㅠㅠㅠ

여태 메타 태그를 엉뚱한 위치에 두고 있었다면 잡담

그렇다면
.. 그걸 고쳤다면 오류가 줄어들 것인가?!?

데이터 trim replace split_part Psql



문의가 들어왔습니다.


이런 식의 데이터를

앞 뒤 구분해서  앞의 수치 > '검색 수치'   자료만 나오게끔
300을 검색하면 앞의 수치가 300이상인 자료만 나오게끔
으악



고민을 해봤습니다.
일단 데이터를 있는 그대로 가져온 후에, ejs  에서 앞 뒤 자르고 검색??? xxx 이건 안되겟다 싶었고

테이블을 통째로 건드려서, 컬럼을 하나 더만들어 따로 넣는다?  그리고 검색후 나오는 결과물은 다시 합쳐서 ??? xxx
테이블 건드리기 귀찮아서 포기

찾다가
psql 에서도 replace 같은 함수를 지원하는걸 처음(?) 알아서
허허

자바스크립트의 split 와 같은 기능이 아마 split_part 같더라고용
어제 찾아본거라 기억이 가물가물

우선  / 를 기준으로 나누려면
select split_part(컬럼, '/' , 1)  from 테이블;
을 하면 /  으로 나눈 첫번째 자료가 나오더라고요

1 대신 2를 넣으면 두번째 ㅎㅎ



그리고 진행을 했는데

띠용
애초에 저 컬럼 타입이 text라 타입을 바꿔줘야..
컬럼 타입을 INTEGER 로 바꾸고 시작하기엔 숫자 말고도 다른 기호가 잇어서.. 흑

그리고 그 전에 저 앞의 '+' 와 공백도 지워줘야..
ㅠㅠㅠ
'+' 기호를 지우기 위해 replace 를 이용했습니다

replace ( x, y, z )
x에는 컬럼 , y에는 z 로 바꾸려는 대상을  넣으면 되는걸로

위에서 스플릿 햇던 문장 그대로 가져와서 집어넣었습니다.

SELECT replace( split_part(컬럼,'/', 1), '+', '') from 테이블 ;


헤헤 '+' 를 '' 로 빈 공백으로 만들었습니다

그리고 나서

했는데
::INTEGER 를 했는데
안되더라고요
왜 안될까 생각하다가
공백이 들어가있어서 그런가 아닌가 뭘까
모르겠어서

역시나 psql 내에서 지원하는 trim 으로 공백을 지웟죠

SELECT trim ( split_part (replace( 컬럼, '+', '') , '/', 1) )::INTEGER as test from 테이블;
그래도 안되길래
왜그럴까 또 고민하다가

ㅠㅠㅠ
왜 안되는지도 모르는 초보라 고민만 했습니다
생각하다가 컬럼에 값이 null 인 경우 (?? empty ?? 아무튼 값이 비어있는 경우)가 있더라고요
아 설마 이것때문일까 해서 쿼리문 끝에 조건을 달았죠
SELECT trim ( split_part (replace( 컬럼, '+', '') , '/', 1) )::INTEGER as test from 테이블 where not(rtrim(컬럼)='');
컬럼이 비어있는 경우를 제외하고 split, trim 을 한 후에 타입 변환을 해라!



짜자잔! 하니 잘 되었습니다  :)

데이터를 이렇게 자르고 타입변환을 했으니


SELECT *  from (SELECT *, trim ( split_part (replace(컬럼, '+', '') , '/', 2) )::INTEGER as test from 테이블 where not(rtrim(컬럼)='')) t1 where test>= 3000 ORDER by test asc ;

이렇게 숫자 3000 을  검색하는 경우를 상정했습니다 헤헤

노드에서는 저 3000 대신 검색어를 넣고 이러쿵저러쿵 하면 되는 것!


다음 작업은 노드에서 하는거라.. 후후 쉬웠죠(라고 쓰고 한참 헤맴)



아 ㅋㅋ 잡담

ㅋㅋ
잘놀앗당

간만에 미션이 들어와서..

일주일간 시골을 갔따와서 잡담

옥수수 따고 베고 이것저것 했쓰빈다

이틀만 좀 쉴까!

1 2 3