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

MySQL 테이블에서 null이 아니거나 0이 아닌 열의 수를 세고 있습니까?


이를 위해 if() 메서드를 사용합니다. 먼저 테이블을 생성하겠습니다 -

mysql> 테이블 생성 DemoTable -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> Number1 int, -> Number2 int -> );쿼리 OK, 영향을 받는 행 0개(1.15초)

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

mysql> insert into DemoTable(Number1,Number2) values(10,20);Query OK, 1개의 row 영향(0.41초)mysql> insert into DemoTable(Number1,Number2) values(0,32);Query OK, 1행 영향(0.38초)mysql> DemoTable(Number1,Number2) 값(40,0)에 삽입, 쿼리 확인, 1행 영향(0.21초)mysql> DemoTable(Number1,Number2) 값(40,50)에 삽입;쿼리 OK, 1행 영향(0.17초)

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

mysql> DemoTable에서 *선택;

출력

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

+----+---------+---------+| 아이디 | 번호1 | 번호2 |+----+---------+---------+| 1 | 10 | 20 || 2 | 0 | 32 || 3 | 40 | 0 || 4 | 40 | 50 |+----+---------+---------+4행 세트(0.00초)

다음은 테이블에서 null이 아니거나 0이 아닌 열의 수를 계산하는 쿼리입니다. -

mysql> DemoTable에서 *,-> if(Number1 <> 0,1,0)+if(Number2 <> 0,1,0) AS TotalCount-> 선택;

출력

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

+----+---------+---------+------------+| 아이디 | 번호1 | 번호2 | 총계 |+----+---------+---------+------------+| 1 | 10 | 20 | 2 || 2 | 0 | 32 | 1 || 3 | 40 | 0 | 1 || 4 | 40 | 50 | 2 |+----+---------+---------+------------+4행 세트(0.00초)