2016-06-07 59 views
1

1)我有一个名为“plan_info_upload”表,该表是这样的:如何检查COUNT操作之前?

site_id site_name 2G_bw 3G_bw route_path 
1  MBCGP1  11  0  abc>bcd>cde 
2  BOPBG2  12  22  mnl>khl>jhg 
3  BOPCB1  11  0  abc>bcd>khl>bbo 
4  BOSBB1  0  25  bops>doc>abc>bcd>jkl 

我必须找到多少2克从routh_path一个unique_hop的&3克体重&总2克&3克体重。但如果其2G_bw或3G_bw为零,则不计算它。但我不明白如何检查它,如果它的值是0或不计数。

我的代码是在这里:

<?php 
    $unique_hop=$_POST['unique_hop']; 
    $i = 0; 
    $sql4 = "SELECT COUNT(2G_bw) AS no_of_2G, SUM(2G_bw) AS total_2G_bw, COUNT(3G_bw) AS no_of_3G, SUM(3G_bw) AS total_3G_bw FROM plan_info_upload WHERE route_path LIKE '%$unique_hop%'"; 
    $result = $conn->query($sql); 

    if ($result->num_rows > 0) 
    { 
     while($row = $result->fetch_assoc()) 
     { 
      $no_of_2G = $row['no_of_2G']; 
      $total_2G_bw = $row['total_2G_bw']; 
      $no_of_3G = $row['no_of_3G']; 
      $total_3G_bw = $row['total_3G_bw']; 
      ?> 

      <tr> 
       <td><?php echo ++$i;?></td> 
       <td><?php echo $unique_hop;?></td> 
       <td><?php echo $no_of_2G;?></td> 
       <td><?php echo $total_2G_bw;?></td> 
       <td><?php echo $no_of_3G;?></td> 
       <td><?php echo $total_3G_bw;?></td> 
      </tr> 
      <?php 
     } 
    } 
?> 
从1台

,如果我选择unique_hop “ABC> BCD”,然后3 routh_path有这个字符串&数&和现有2G_bw & 3G_bw。

我的愿望输出将是:

unique_hop  no_of_2G total_2G_bw no_of_3G total_3G_bw 
abc>bcd  2   22   1   25 

但产量来了这样的:

unique_hop  no_of_2G total_2G_bw no_of_3G total_3G_bw 
abc>bcd  3   22   3   25 

所以怎么算术前检查?请有人帮我解决问题。

回答

1

试试这个:

SELECT COUNT(nullif(2G_bw, 0)) AS no_of_2G, SUM(2G_bw) AS total_2G_bw, COUNT(nullif(3G_bw, 0)) AS no_of_3G, SUM(3G_bw) AS total_3G_bw FROM plan_info_upload WHERE route_path LIKE '%$unique_hop%'"; 
+0

它的工作原理..感谢ü这么多@official – sharvanaz

相关问题