database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 24099 게시물 읽기
No. 24099
아래 질문 정리해서 다시 올립니다 부디한수 지도 부탁드립니다.
작성자
이진은
작성일
2005-07-21 15:24ⓒ
2005-07-21 15:36ⓜ
조회수
832

Create table matchs
(
master_idx int,
str_idx int,
str_type int
)

insert into matchs values (1,124,1);
insert into matchs values (1,124,2);
insert into matchs values (1,129,3);
insert into matchs values (1,129,1);
insert into matchs values (2,129,2);
insert into matchs values (2,129,4);
insert into matchs values (2,129,5);
insert into matchs values (3,135,4);
insert into matchs values (3,135,5);
insert into matchs values (4,135,1);


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

select
master_idx,count (*) as rank from matchs
where str_idx in(124,129)
group by master_idx
order by rank desc

 

 

master_idx rank
1 4
2 3

 


위와 같은 결과를 얻게 됩니다.
그러나 이러한 결과가 아니라 아래의 결과가 필요합니다.

 

master_idx rank
1 2
2 1



왜 master_idx 1의 랭킹이 2가 되느냐...
str_idx가 검색시 2개를 입력했기때문에
str_idx값에 해당하는 값이 있을때 1씩 증가하는것입니다.
그러므로 소속된 값은 4개이지만 str_id가 같은것은 한 그룹으로 보기때문에 랭킹은 2가 되는것이죠

조금더 발전된 형태로

 

 

master_idx rank ext
1 2 11000 + 10100
2 1 01011


ext에는 입력받은 str_id에 따라 위치값을 담고 있습니다.
master_idx가 1인것의 ext를 보았을때
11000은
insert into matchs values (1,124,1);
insert into matchs values (1,124,2);
때문에 그리 만들어진 것입니다.
총 5자리(고정)중 위치를 포함하고 있는 str_type값에 의해 on,off되어 0또는 1로 값이 표현됩니다.
거기에 master_idx 가 같지만 str_idx가 다른 그룹이 또 존재하는데
insert into matchs values (1,129,3);
insert into matchs values (1,129,1);
때문에 + 10100 이 추가 되었습니다.

검색대상의 갯수가 늘어나면

예를들어 4개의 str_idx 로 검색을 하게 된다면

ext는 11000 + 10100 + 00001 + 01000

형태로 늘어나게 됩니다.

실제로 더해져도 상관없습니다.

 

 

이 쿼리가 가능할까요?

아니면 위의 중간 단계의 쿼리는 가능할까요?

[Top]
No.
제목
작성자
작성일
조회
24102조인문 질문 [4]
rebible
2005-07-21
1279
24101mysql이 자주 끊기는 이유?? [1]
오호라
2005-07-21
2847
24100InnoDB 디렉토리 [5]
정현태
2005-07-21
1925
24099아래 질문 정리해서 다시 올립니다 부디한수 지도 부탁드립니다.
이진은
2005-07-21
832
24098MySQL에서 MSACCESS(MDB) 파일을... [1]
석상수
2005-07-21
1204
24097innodb에서요. [1]
정현태
2005-07-21
3180
24096.frm 파일만 생성됬습니다. [3]
강석오
2005-07-21
1244
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다