기본적으로 중복되지 말아야 하는데.. 중복이 된 경우 그 행을 삭제하는 방법입니다.

DELETE FROM duplicate
WHERE id not in ( SELECT id from ( SELECT id from 
duplicate group by phone) as id )

전화번호가 중복 된 것이 있을 경우, 위와 같이 WHERE NOT IN을 사용해서 제거해 줄 수 있습니다.


출처 - http://gyuha.tistory.com/309




/* 중복 레코드 조회 */
SELECT 테이블_index, 
       중복필드, 
       count(*) as cnt 
  FROM 테이블  
   GROUP BY 중복필드  
HAVING count(테이블_index)>1; 
 
/* 중복 레코드 삭제 */
DELETE 
  FROM 테이블  
 WHERE 테이블_PK not in (
     SELECT 테이블_PK  FROM (
           SELECT 테이블_PK FROM 테이블 GROUP BY 중복필드
     as b
 );


출처 - http://rexraio.tistory.com/46






Posted by linuxism
,


mysql 에서요.. 

A라는 테이블에 

여러 row가 있는 B라는 테이블과 Join하고자 합니다. 

다만 조건은  A라는 테이블의 merge라는 컬럼에 B라는 테이블의 여러 row가 콤마로 구분되어 들어가구요. 

이걸 하나의 뷰로 만들고자 하는데요.. 

쿼리문을 어떻게 짜야 하는지 도움을 부탁 드립니다. 


Table1 : A 

B_idx    job          shool 

-------------------------------- 

  2      engineer    high 


Table2 : B 

idx      B_idx    name 

------------------------------- 

 1          2              데이터1 

 2          3              데이터2 

 3          2              데이터3 

 4          5              데이터4 


result 

B_idx    job                shool          name 

------------------------------------------- 

  2        enginner          high          데이터1,데이터3



select a.b_idx, a.job, a.school , group_concat(name) 

from a_table a inner join b_table b on a.b_idx=b.b_idx group by a.b_idx


출처 - http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_db&wr_id=190021




'DB > MySQL' 카테고리의 다른 글

mysql - union 연산자  (0) 2012.08.20
mysql - 중복 레코드 지우기  (0) 2012.08.16
mysql - 튜닝 정보 및 주의 사항  (0) 2012.08.09
mysql - BLOB, TEXT 데이터 형식  (0) 2012.08.09
mysql - 파일에서 테이블로 insert  (0) 2012.07.13
Posted by linuxism
,


캐리지 리턴(CR)과 라인 피드(LF)는 느린 프린터의 유산인 걸로 알고

캐리지 리턴(CR)과 라인 피드(LF)는 느린 프린터의 유산인 걸로 알고 있습니다.
CR은 현재 위치를 나타내는 커서(?)를 맨 앞으로 이동시킨다는 뜻이고,
LF는 커서의 위치를 아랫줄로 이동시킨다는 뜻입니다.
이 두 동작을 합치면 뉴라인('\n')과 동일한 동작을 하게 됩니다.

굳이 두 동작으로 나눈 이유는 과거의 느린 프린터가 물리적인 동작을 취하는데 충분한 시간을 확보해주기 위해서 신호를 두 개로 나누어 보내주었기 때문이라고 알고 있습니다.

하지만 현재는 둘 중 하나만 있어도 뉴라인으로 간주합니다. 따라서 신경쓰지 않으셔도 됩니다. (아~~주 가끔 그 문제로 삽질을 하는 경우도 있을 수는 있지만..- -+)

그리고 LF로 뉴라인을 나타내는지 CR+LF로 뉴라인을 나타내는지는 언어의 차이가 아니라 시스템의 차이입니다.
Unix-like 시스템에서는 LF로,
윈도우즈에서는 CR+LF로 표현합니다.

덧붙이자면,
정규식에서는 CR과 LF는 의미가 없습니다.
모두 뉴라인 하나로 표현됩니다.


출처 - http://kldp.org/node/46637




Posted by linuxism
,