Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL을 사용하여 하나 이상의 열에서 정확한 값을 가진 행을 찾는 방법은 무엇입니까?

<시간/>

이를 위해 하위 쿼리와 함께 GROUP BY HAVING을 사용할 수 있습니다. 먼저 테이블을 생성하겠습니다 -

mysql> 테이블 생성 DemoTable1861 ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(20), Marks int );쿼리 OK, 영향을 받는 행 0개(0.00초)

삽입 명령을 사용하여 테이블에 일부 레코드 삽입 -

mysql> insert into DemoTable1861(Name,Marks) values('John',45);Query OK, 영향을 받는 행 1개(0.00초)mysql> insert into DemoTable1861(Name,Marks) values('Chris',74);Query OK, 영향을 받는 행 1개(0.00초)mysql> DemoTable1861(Name,Marks) values('David',89)에 삽입;Query OK, 영향을 받는 행 1개(0.00초)mysql> DemoTable1861(Name,Marks)에 삽입 values('Chris',74);쿼리 확인, 1행 영향(0.00초)mysql> DemoTable1861(Name,Marks)에 삽입 values('John',49);쿼리 확인, 1행 영향(0.00초) 

select 문을 사용하여 테이블의 모든 레코드 표시 -

mysql> DemoTable1861에서 * 선택;

이것은 다음과 같은 출력을 생성합니다 -

+----+-------+-------+| 아이디 | 이름 | 표시 |+----+-------+-------+| 1 | 존 | 45 || 2 | 크리스 | 74 || 3 | 데이비드 | 89 || 4 | 크리스 | 74 || 5 | 존 | 49 |+----+-------+-------+5행 세트(0.00초)

다음은 하나 이상의 열에서 정확한 값을 가진 행을 찾는 쿼리입니다.

mysql> Select Id,Name,Marks from DemoTable1861 where (Name,Marks) IN ( Select Name,Marks from DemoTable1861 group by Name,Marks with count(*)> 1);

이것은 다음과 같은 출력을 생성합니다 -

+----+-------+-------+| 아이디 | 이름 | 표시 |+----+-------+-------+| 2 | 크리스 | 74 || 4 | 크리스 | 74 |+----+-------+-------+2행 세트(0.00초)