2015-01-25 3 views
0

방법 검사 테이블에있는 모든 행의 MySQL의 테이블에 문자 데이터 유형을 갖는 열 에 대해 고유 한 값을 가지고 yes 같은 값을 반환 여부 또는 no? ?가 검사 할 열입니다 당신이 뭔가를 시도 할 수 있습니다확인 여부를 테이블의 모든 행은 열에 대해 고유 한 값을

+0

'SELECT (개수가 distinct column_name)> 1 일 때 '아니오', '예'end FROM table_name'. – Tiny

+0

죄송합니다. 아니요, OP가 찾고있는 것이 아닙니다. 그가 찾고있는 것은 아마도 고든의 대답과 유사 할 것입니다. –

답변

1

: 당신이 NULL 값을 무시하면

SELECT IF(t.total = t.total_distinct, 'YES', 'NO') AS result 
FROM (SELECT COUNT(*) AS total 
      , COUNT(DISTINCT ?) AS total_distinct 
     FROM tbl 
) t 
1

, 당신은 단지 비교할 수는 count()count(distinct) :

select (case when count(col) = count(distinct col) then 'All Unique' else 'Duplicates' end) 
from table t; 

하는 경우 NULL 값이 염려됩니다 (따라서 NULL은 한 번에 허용됩니다). 그러면 최대 값을 집계하여 볼 수 있습니다 :

select (case when max(cnt) = 1 then 'All Unique' else 'Duplicates' end) 
from (select col, count(*) as cnt 
     from table t 
     group by col 
    ) col 
0

나는 고든의 대답의 첫 번째 버전과 함께 갈 것이지만 테이블의 기본 키로 그룹화했다. 다른 말로하면 :

관련 문제