제목 | 좋은 아이디어 없나요? sql update | ||
---|---|---|---|
글쓴이 | 이지포토 | 작성시각 | 2014/04/24 09:08:51 |
|
|||
TableA 는 list_no 라는 필드가 있고 sn list_no title ... 1 1 ABCDD .. 2 2 ABCDE .. 3 3 ABCDF .. 4 4 ABCDG .. 5 5 ABCDH .. 이런식으로 됩니다. sn 는 자동증가되는 프라이머리키고 list_no 는 중복될수 없는 시리즈 번호입니다. 그런데 sn 2번을 삭제되면 1 1 ABCDD .. 3 2 ABCDF .. 4 3 ABCDG .. 5 4 ABCDH .. 이런식으로 되어야 하고 sn 2,3번 동시에 삭제되면 1 1 ABCDD .. 4 2 ABCDG .. 5 3 ABCDH .. 이런식으로 되어야 하고 sn 2,4번 동시에 삭제되면 1 1 ABCDD .. 3 2 ABCDF .. 5 3 ABCDH .. .. sn 2,3,4 삭제되면 1 1 ABCDD .. 5 2 ABCDH .. sn 2,5 삭제되면 1 1 ABCDD .. 3 2 ABCDF .. 4 3 ABCDG .. 만약 1 만 삭제되면 2 1 ABCDE .. 3 2 ABCDF .. 4 3 ABCDG .. 5 4 ABCDH .. 이런식으로 재 정렬된 update 가 list_no 값에 부여되어야 합니다. 노가대식으로 루프 돌려서 할수도 있지만 최소의 query 로 가급적 적은 sql 문으로 해결할수있는 방법이 있을까요? |
|||
다음글 | 중복로그인 방지 (5) | ||
이전글 | HTML 태그 문의 입니다. (1) | ||
한대승(불의회상)
/
2014/04/24 09:46:16 /
추천
0
노가대를 하긴 해야 하는데 DB에게 시키고 싶으시다면..
|
변종원(웅파)
/
2014/04/24 10:46:27 /
추천
0
게시판 로직중에 업데이트형에 해당하는건데 추천하지 않는 방식입니다.
몇건 안되면 상관없지만 데이터가 많아지면 부하가 상당하겠죠. 시리즈 번호가 join 등 다른 곳에 쓰이지 않나봅니다. 단순히 표현을 위해 그렇게 하는거면 다른 방법을 찾아보시는게 좋습니다. |
이지포토
/
2014/04/29 13:20:51 /
추천
0
//list_no 재 정렬값 부여 function list_no_sort($cine_no) { $this->db->select('sn '); $this->db->from($this->table_name2.' as o'); $this->db->where("cine_no", $cine_no); $this->db->order_by('o.sn ASC'); $query = $this->db->get(); $result = $query->result_array(); for($i=0;$idb->set('list_no', $re_list_no); $this->db->where("cine_no", $cine_no); $this->db->where("sn", $result[$i]['sn']); $this->db->update($this->table_name2); } } |
변종원(웅파)
/
2014/04/29 15:04:26 /
추천
0
이지포토/ 서버 부하를 유발하는 방식입니다. 행이 많아질수록 서버가 멈출 수도 있는 로직이죠.
|
ando
/
2014/04/30 14:05:36 /
추천
0
굳이 삭제할때마다 업데이트 할 이유가 있을까요??
놔둬도 상관없을꺼같은데... |