SQL 질문을 드려봅니다. 정보
SQL 질문을 드려봅니다.본문
오랫만에 들러서 질문을 먼저 하게 됩니다.
select distinct owner from `$table` where date = '$view[date]' order by owner
위 쿼리를 날리면 owner 필드의 중복값을 무시하고 한 개만 출력하게 된다고 알고 있었는데...
걸러지지 않는 부분도 발견되고 있어 아래처럼 결과값이 나옵니다.
owner(varchar Type)
강감찬
강감찬
혹시 공백 문제일까 싶어 체크해봤는데 그런 문제는 없는데 어떤 문제인지 도저히 알 길이 없어 질문을 드려 봅니다.
오늘 너무 늦은 시각이라 내일 확인하게 될 것 같습니다.
좋은 밤 보내십시요.
######################################################################
자기전에 잠깐 들렀더니 세 분께서 답변을 주셨군요.
감사합니다.
일단 세 분의 답변으론 안됩니다.
참고로 UTF-8 사용합니다.
쉽게 테스트를 해볼 방법을 생각해보니 그누보드로 사이트를 운영하시면 테스트해 보시면 좋을거란 생각에 추가로 적어봅니다.
운영중인 사이트에서 게시글이 많은 게시판을 가지고 한번 테스트 해보시기 바랍니다.
^^
<table>
<?
$sql = " select distinct mb_nick hex(mb_id) from `$write_table` order by mb_id ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
echo "<tr><td>";
echo "$row[mb_id]";
echo "</td></tr>";
?>
</table>
하나 하나 차근차근 작성된 글이라 현재 운영하시는 분들은 저와 같은 문제가 있을지는 잘 모르겠습니다.
저는 필요한 데이터를 한번에 디비에 집어넣고 작업을 하다보니 문제가 발생했네요...
카운터를 세어보면 특정 이름은 다섯번 카운터가 되어야 하는데 1번 찍히는 문제도 있는데 네 개는 하나로 묶여 다행히 출력은 됩니다만 위 예처럼 두번 출력이 되는 문제가 있습니다.
아래 엑스엠엘님이 주신 답글을 보고 일단 링크를 열었습니다만 북마크를 해두고 찬찬히 들여다 봐야 하겠습니다.
물론, 현재 주신 코드는 동일한 결과값만 나옵니다.
감사합니다.
정말로 자야 될것 같습니다.
내일 뵙겠습니다.
포인트를 좀 더 드리고 싶어 수정하려니 안되는군요.
생각나는데로 찍었더니 많이 짠 느낌이라 더 드릴려고 했더니...
^^;
select distinct owner from `$table` where date = '$view[date]' order by owner
위 쿼리를 날리면 owner 필드의 중복값을 무시하고 한 개만 출력하게 된다고 알고 있었는데...
걸러지지 않는 부분도 발견되고 있어 아래처럼 결과값이 나옵니다.
owner(varchar Type)
강감찬
강감찬
혹시 공백 문제일까 싶어 체크해봤는데 그런 문제는 없는데 어떤 문제인지 도저히 알 길이 없어 질문을 드려 봅니다.
오늘 너무 늦은 시각이라 내일 확인하게 될 것 같습니다.
좋은 밤 보내십시요.
######################################################################
자기전에 잠깐 들렀더니 세 분께서 답변을 주셨군요.
감사합니다.
일단 세 분의 답변으론 안됩니다.
참고로 UTF-8 사용합니다.
쉽게 테스트를 해볼 방법을 생각해보니 그누보드로 사이트를 운영하시면 테스트해 보시면 좋을거란 생각에 추가로 적어봅니다.
운영중인 사이트에서 게시글이 많은 게시판을 가지고 한번 테스트 해보시기 바랍니다.
^^
<table>
<?
$sql = " select distinct mb_nick hex(mb_id) from `$write_table` order by mb_id ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
echo "<tr><td>";
echo "$row[mb_id]";
echo "</td></tr>";
?>
</table>
하나 하나 차근차근 작성된 글이라 현재 운영하시는 분들은 저와 같은 문제가 있을지는 잘 모르겠습니다.
저는 필요한 데이터를 한번에 디비에 집어넣고 작업을 하다보니 문제가 발생했네요...
카운터를 세어보면 특정 이름은 다섯번 카운터가 되어야 하는데 1번 찍히는 문제도 있는데 네 개는 하나로 묶여 다행히 출력은 됩니다만 위 예처럼 두번 출력이 되는 문제가 있습니다.
아래 엑스엠엘님이 주신 답글을 보고 일단 링크를 열었습니다만 북마크를 해두고 찬찬히 들여다 봐야 하겠습니다.
물론, 현재 주신 코드는 동일한 결과값만 나옵니다.
감사합니다.
정말로 자야 될것 같습니다.
내일 뵙겠습니다.
포인트를 좀 더 드리고 싶어 수정하려니 안되는군요.
생각나는데로 찍었더니 많이 짠 느낌이라 더 드릴려고 했더니...
^^;
댓글 전체
select distinct owner from `$table`
이렇게 해야 table에서 owner 필드의 중복을 제거하고 보여주지 않을까여.
저도 초보라서..
이렇게 해야 table에서 owner 필드의 중복을 제거하고 보여주지 않을까여.
저도 초보라서..
select distinct trim(owner) from `$table` where date = '$view[date]' order by trim(owner)
http://dev.mysql.com/doc/refman/4.1/en/string-functions.html#function_hex
select distinct owner, hex(owner) from `$table` where date = '$view[date]' order by owner
select distinct owner, hex(owner) from `$table` where date = '$view[date]' order by owner
select ower from tb where date = date group by owner
해당 사항이 없는 답변들이지만 몇일간 고민하던 끝에 해결을 했습니다.
DB 자료는 공백이 하나도 없는 완벽한 것인데 인설트 과정에서 자연스럽게 공백이 발생하기도 하고 그렇지 않을 경우도 있네요.
처음 겪는 문제인지라 이리저리 해결을 할려다 도저히 안되어 할수없이 인설트시 전부 공백제거후 저장하게끔 하는걸로 처리를 해야 했습니다.
제 경우가 특별한 경우인지는 잘 모르겠는데...
UTF-8 한글 자료를 백업했다가 정렬후 다시 업로드 할 경우에 발생한 문제이므로 혹 비슷한 경우가 있는 분들께선 체크를 해보시기 바랍니다.
DB 자료가 공백이 없는 무결성 자료라 절대 공백 문제는 아니다 생각했는데 왜 공백 한 개가 자연스럽게 생기기도 하고 말기도 했는지 지금도 이해를 하기 어렵습니다.
포인트를 골고루 드리고 싶지만 앵무나라 님께서 그래도 공백 문제라고 거론해 주신 만큼 채택을 하겠습니다.
관심주신 분들께 감사합니다.
DB 자료는 공백이 하나도 없는 완벽한 것인데 인설트 과정에서 자연스럽게 공백이 발생하기도 하고 그렇지 않을 경우도 있네요.
처음 겪는 문제인지라 이리저리 해결을 할려다 도저히 안되어 할수없이 인설트시 전부 공백제거후 저장하게끔 하는걸로 처리를 해야 했습니다.
제 경우가 특별한 경우인지는 잘 모르겠는데...
UTF-8 한글 자료를 백업했다가 정렬후 다시 업로드 할 경우에 발생한 문제이므로 혹 비슷한 경우가 있는 분들께선 체크를 해보시기 바랍니다.
DB 자료가 공백이 없는 무결성 자료라 절대 공백 문제는 아니다 생각했는데 왜 공백 한 개가 자연스럽게 생기기도 하고 말기도 했는지 지금도 이해를 하기 어렵습니다.
포인트를 골고루 드리고 싶지만 앵무나라 님께서 그래도 공백 문제라고 거론해 주신 만큼 채택을 하겠습니다.
관심주신 분들께 감사합니다.