특정 db 컬럼 카운트

특정 db 컬럼 카운트

QA

특정 db 컬럼 카운트

답변 2

본문

db 컬럼에 car_number1 / car_number2 / car_number3 이 3개가 있는데요

값이 있을수도 있고 없을수도 있습니다.

 

값이 있는 컬럼 카운트는 어떻게 뽑나요?

 

예를들어

car_number1 와 car_number2 에 값이 있다면 2 라고 카운트 출력하고 싶어서요~

 

이 질문에 댓글 쓰기 :

답변 2

테이블은 table이라고 하겠습니다.


<?php
$row = sql_fetch("select (select count(car_number1) from table where car_number1 <> '') + 
         (select count(car_number1) from table where car_number2 <> '') as carcount");
echo $row['carcount'];
 

 

위의 조건절에 Record마다 조건을 붙이면 각 Row별로 컬럼의 값을 존재하는것들만 추출가능하고

위의 쿼리는 car_number1 과 car_number2 의 각 값이 존재하는 row수만큼 서로 카운트후 더하는 내용입니다.


DROP TABLE IF EXISTS `zoo4`;
CREATE TABLE IF NOT EXISTS `zoo4` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `car_number1` varchar(255) NOT NULL DEFAULT '',
  `car_number2` varchar(255) NOT NULL DEFAULT '',
  `car_number3` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `zoo4` VALUES(1, 'a', 'a', '');
INSERT INTO `zoo4` VALUES(2, 'a', '', 'a');
INSERT INTO `zoo4` VALUES(3, '', '', '');
INSERT INTO `zoo4` VALUES(4, '', 'a', 'a');
INSERT INTO `zoo4` VALUES(5, 'a', 'a', 'a');
INSERT INTO `zoo4` VALUES(6, 'a', '', '');
INSERT INTO `zoo4` VALUES(7, 'a', '', 'a');

 


SELECT 
  `id`, 
  SUM(IF(`car_number1`!='', 1, 0) + IF(`car_number2`!='', 1, 0) + IF(`car_number3`!='', 1, 0)) AS `count` 
FROM `zoo4` 
WHERE 1 
GROUP BY `id`

 


id    count
1    2
2    2
3    0
4    2
5    3
6    1
7    2
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
filter #DB ×
전체 840
© SIRSOFT
현재 페이지 제일 처음으로