답변 4개
채택된 답변
+20 포인트
7년 전
음.. 생각나는 방법은 일단 D3 과 D31 을 하나로 만드는걸 먼저 하셔야 겠네요
D01, D03 이런식으로 해서 자릿수를 맞추는 작업을 선행하셔야 겠습니다.
그리고 해당 필드가 있는지 검증하는 방법은 like 로 하시거나
replace("D03,","") 이런식으로 먼저 값을 넣기 전에 replace 로 해당 값을 없앤다음 넣는 방법이 있겠네요..
문제가 생길 소지가 마지막에 "," 인데 값을 넣을때 부터 마지막에 "," 가 추가되도록 하고
배열검사할때 마지막 항을 예외처리하도록 하면 되지 않을까요?
로그인 후 평가할 수 있습니다
답변에 대한 댓글 2개
�
강똥꾸
7년 전
�
나시
7년 전
도움이 되었다니 다행입니다. ^^
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
�
강똥꾸
7년 전
질문을 보완해 보았습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
�
강똥꾸
7년 전
고수님 분명 방법은 아실텐데 제가 질문을 잘못한듯합니다.
mysql 필드에 설계 잘못으로 필드에 배열처럼 D2,J12,J28,P8,Q20 넣어버린겁니다.
그래서 막상 D3,Q20 처럼 넣으려고 하니, D3 가 있는지 Q20 가 있는지 검색을 해보고 넣어야하는 상황이 생긴거에요.
그런데 저 검증을 하는데 최대한 빠르고 검증을 해보력 하는데, 제가 해본 초보 코드로는,,,
필드 like '%D3%' 로 검증 ( " , " 이가 있기때문에 D3 인지 D31 인지 한번에 검증 불가 )
해당 필드 값 -> 결과 필드를 php로 배열 화 -> 배열 갯수 loop 돌려서 맞는지 중복 맞다면 exit;
그런데 입력하는 값이 총 5개 이기때문에,
5번 검증 X 5개 배열 총 25번 검증 을 동시 100명만 해도 2500 번 검증을 한다면
부하가 너무 심해서 좋은 방법이 없는지 까지 도달했습니다.
mysql 필드에 설계 잘못으로 필드에 배열처럼 D2,J12,J28,P8,Q20 넣어버린겁니다.
그래서 막상 D3,Q20 처럼 넣으려고 하니, D3 가 있는지 Q20 가 있는지 검색을 해보고 넣어야하는 상황이 생긴거에요.
그런데 저 검증을 하는데 최대한 빠르고 검증을 해보력 하는데, 제가 해본 초보 코드로는,,,
필드 like '%D3%' 로 검증 ( " , " 이가 있기때문에 D3 인지 D31 인지 한번에 검증 불가 )
해당 필드 값 -> 결과 필드를 php로 배열 화 -> 배열 갯수 loop 돌려서 맞는지 중복 맞다면 exit;
그런데 입력하는 값이 총 5개 이기때문에,
5번 검증 X 5개 배열 총 25번 검증 을 동시 100명만 해도 2500 번 검증을 한다면
부하가 너무 심해서 좋은 방법이 없는지 까지 도달했습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
우선 자릿수만 맞춰봐도, %like% 로 해결할 수 있지않을까, 가능성이 보입니다.. 감사합니다....!!