본문 바로가기
MySql

MySQL dql을 사용하여 데이터 테이블에서 고유 값을 얻는 방법은 무엇입니까?

by 베이스 공부 2020. 12. 11.
반응형

다양한 값이 저장된 열이있는 테이블이 있습니다. dql을 사용하여 해당 테이블에서 고유 한 값을 검색하고 싶습니다.

         Doctrine_Query::create()
                    ->select('rec.school')
                    ->from('Records rec')                   
                    ->where("rec.city='$city' ")                                    
                    ->execute();        

이제 고유 한 값만 원합니다. 아무도 그렇게하는 방법을 말해 줄 수 있습니까?

수정

테이블 구조 :

CREATE TABLE IF NOT EXISTS `records` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`state` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
 `city` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
 `school` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=16334 ;

이것은 내가 사용중인 쿼리입니다.

   Doctrine_Query::create()
          ->select('DISTINCT rec.city')
          ->from('Records rec')                   
          ->where("rec.state = '$state'")                                    
             // ->getSql();
           ->execute();                 

이를 위해 Sql을 생성하면 다음이 제공됩니다.

SELECT DISTINCT r.id AS r__id, r.city AS r__city FROM records r WHERE r.state = 'AR'

이제 생성 된 SQL을 확인하십시오 :::: DISTINCT 는 'id'열에 있으며 도시 열에서 Distinct를 원합니다. 누구나이 문제를 해결하는 방법을 알고 있습니다.

EDIT2

Id는 자동 증분 값으로 인해 고유합니다 .Ya 델리와 델리와 같은 도시 열에 실제 중복이 있습니다. 맞아요 .. 이제 데이터를 가져 오려고 할 때 델리를 두 번 얻습니다. 다음과 같은 쿼리를 어떻게 만들 수 있습니까?

  select DISTINCT rec.city where state="xyz";

이것이 나에게 적절한 출력을 줄 것이기 때문입니다.

EDIT3 :

이 쿼리를 알아내는 방법을 말해 줄 수있는 사람 .. ???

 

해결 방법

 

사용하는 버전에 따라 다르지만 동일한 문제가 있었고-> distinct ()가 저에게 효과적이었습니다.

Doctrine_Query::create()
      ->select('rec.city')->distinct()
      ->from('Records rec')                   
      ->where("rec.state = '$state'")                                    
       ->execute();     

 

참조 페이지 https://stackoverflow.com/questions/2148620

 

 

반응형

댓글