count(distinct(user_id)) 여기에 추가적인 if문을 넣는경우
조회 7,028 2026-08-18 등록
로그인하면 의견을 남길 수 있습니다.
아직 의견이 없습니다. 첫 의견을 남겨보세요.
게시글
2개이상 중복되는 내용을 검색하는 지리문 having
2개이상 중복되는 데이터를 뽑아와야 하는경우가 있다 예를 들어 결제 내역중에 2번이상 결제한 사람을 뽑아오는 경우가 그렇다 select *, count(*) as count1 from 테이블명 where 1 group by 회원아이디필드 having count1 > 2 이렇게 하면 2번이상인 경우를 검색할수 있다
특정문자의 갯수가 몇개인지 알아내는 지리문
내용중에 특정 문자가 몇게 있는지를 알아내는 지리문 select (length(filed1) - length(replace(filed1, 'a', ''))) / length('a') as count from tablename 검색해서 알게된것이지만 정말 머리 잘사용하듯함 전체텍스트갯수-(전체텍스트에서 갯수를 알고자하는 텍스트를 제거한갯수)=>제거된 갯수를알아냄 제거된갯수가 원하는 텍스트 갯수는 아닐수있담 텍스트가 "a" 하나이면 되지만 "aa" 2개일수도 있어 변환시킨 문자의 텍스트갯수로 나눈다 그럼 특정문자의 갯수를 알아낼수 있다
게시물 작성중에 최근 등록한 사람 아이디별로 노출하기
10명의 사람이 글을 여러게 올려놓았을때 최근에 올린 사람3명을 불러오기 위한 지리문 select distinct(이름) from tablename where and sidx_code='$key_code' order by 날짜 desc
서브쿼리 내용호출할때 사용 댓글수 많은것 순으로 정렬
select *,( select count(*) from table2 where 1 and table1.idx.code=table2.sidx_code //상위에 해당하는내용과 서브에 해당하는 내용을 일치시켜서 갯수호출함 group by sidx_code ) as count //count로 카운트 갯수를 표기함 from table1 where 1 order by count //전체 적인 지리문을 정렬함 첫번째 테이블 table1 두번째 테이블 table2 table1.idx_code값은 table2.sidx_code값과 동일함 sidx_code값은 여러게 존제함
mysql에서 날짜를 계산하는 방법
데이타 추가시 날짜형태를 함수로 처리 date_add(now(),interval +2 month) ->2개월후 date_add(now(),interval +2 day) ->2일후 date_add('2015-12-29 10:10:10',interval +2 day) ->2일후
다른 테이블에 있는 내용을 insert 하는 방법
테이블 내의 레코드를 그대로 입력하는 방법 내용을 select 한다음 내용을 insert하면된다 이때 따움표나 이런것때문에 문제가 생길수 있는데 이때를 위해 PHP에선 addslashes() 함수를 사용해서 입력한다 이건 뭐 간단하게 생각하면될문제이다 그러나 소개하고자 하는것은 좀더 효율적으로 처리하기위한 방법이다 지리문 자체에서 insert하는 방법이다 insert into 테이블1 select * from 테이블2 where 1 테이블2에 있는 내용을 테이블1에 insert하는 방법이다 위와 같은 방법으로 하면 속도면이나 프로그램 소스가 현저하게 줄어들게된다 물론 해당 필드명을 하나하나 코딩할 필요도 없다
like 아닌것만 호출하는 법
검색할때 like를 사용한다 그러나 해당 문구가 안들어간 내용을 호출할때 사용하는 방법이다 필드면 !like '%검색문구%' -> 이런식으로 사용할것 같지 만 그렇지 않다 select * from tablename where 1 and !(필드명 like '%검색내용%') 검색내용이 없는 레코드를 호출하게 된다
서브쿼리의 기본
select * from table where 1 and idx_code in (1,2,3,4,5) idx_code값중에 1,2,3,4,5를 가져온다 select * from table where 1 and idx_code not in (1,2,3,4,5) idx_code값중에 1,2,3,4,5아닌것을 가져온다 select * from table where 1 and idx_code in (select sidx_code table1 where 1) 검색된 내역중에 데이타 table1.sidx_code와 table.idx_code가 일치하는 내역만 호출
의견 0
로그인하면 의견을 남길 수 있습니다.
아직 의견이 없습니다. 첫 의견을 남겨보세요.