mysql 간단한 query 질문이에요

wandjina의 이미지

X Y
a b
a c
a d
b a
b e
b f
..
..

이런 테이블이 있을때,

X와 Y의 관계에서
a-b나 b-a나 사실 같은 데이터라 둘 중 하나는 빼고 싶거든요.
이런게 상당히 많이 있습니다. (약 5000 줄.. )

즉 a-c와 c-a,
e-z와 z-e...

뭐 이런식의 중복이죠..

둘중 하나만 빼고 싶구요,

실제 데이터는 X와 Y가 유전자 이름입니다.

biology에 몸담고 있어서 DB는 어렵네요 ...ㅠㅠ

어떤 query 를 써야 할가요?

익명 사용자의 이미지

select A.X , A.Y from table AS A inner join ( SELECT X , Y FROM table ) AS B
where A.X <> B.Y AND A.Y <> B.X

를 사용하면.. 중복제거된 리스트를 얻을 수 있을듯해요.

ps. 테스트는 해보지 않았어요..^^:

wariua의 이미지

만약 데이터쌍마다 순서가 반대인 중복되는 쌍이 반드시 있다면... 즉, 테이블에 a-c가 들어있으면 c-a도 들어있고 그 반대도 성립한다면...

SELECT * FROM table WHERE X <= Y

정도로 가능합니다.

아쉽게도 그 가정이 성립하지 않는다면...

SELECT X, Y FROM table WHERE X <= Y UNION SELECT Y, X FROM table WHERE X >= Y

정도로 가능합니다.

ps. sqlite에서만 테스트 해보고 mysql에서는 테스트 해보지 않았습니다. 아휴~ mysql이라니, 무서워라~ ^^;;

$PWD `date`

jos77의 이미지

윗분들이 한 말대로 했더니 잘 안되네요 (더 많이 나온다는)

select * from test as A , test as B where (A.str2=B.str1 && A.str1=B.str2)

이렇게 하면 걸러져서 나오는데

이걸 delete from test 로 바꿔서 하면 되긴 할듯

-----
안녕하세요 소프트웨어 공학센터 장원석 책임입니다.
http://www.software.kr

yhsuk의 이미지

테이블명이 TEST이면

SELECT DISTINCT(CASE X > Y WHEN TRUE THEN CONCAT(Y, X) WHEN FALSE THEN CONCAT(X, Y) END) as pair from TEST;
해보세요

Signature :) - "여유를 갖고 행동하되 게을러지지 말자"

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.