테스트 사이트 - 개발 중인 베타 버전입니다

특정 db 컬럼 카운트 채택완료

웹프리죤 4년 전 조회 2,078

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

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

 

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

 

예를들어

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

 

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
플래토
4년 전

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

</p>

<p><?php</p>

<p>$row = sql_fetch("select (select count(car_number1) from table where car_number1 <> '') + </p>

<p>         (select count(car_number1) from table where car_number2 <> '') as carcount");</p>

<p>echo $row['carcount'];</p>

<p> </p>

<p>

 

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

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

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

Big1
4년 전

</p>

<p>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;</p>

<p>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');</p>

<p>

 

</p>

<p>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`</p>

<p>

 

</p>

<p>id    count

1    2

2    2

3    0

4    2

5    3

6    1

7    2

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인