如何删除不需要的值并显示null

时间:2018-07-06 18:08:44

标签: php mysql sql

我有以下代码从MySQL表中提取数据。我想在表格单元格中显示某些值(例如Tnex> = 40,Mode> = 20等)为null。当我尝试在SQL查询中使用where子句进行操作时,不显示不符合条件的行在桌子上。相反,我需要显示行,但只显示要为null或为空的值。

例如,在某一行中,如果“ Tnex”> = 40,则表单元格应该为空。我怎样才能做到这一点?我想显示null而不是某些数字(例如,如果我的标准是“ Tnex”,例如Tnex <= 10,那么我想显示1到10的值为“ null”,而只显示其余部分)值。我该怎么做?

<table class="tbnar">
 <tr>
<th>Date</th> 
<th>Snex</th>
<th>Tnex</th>
<th>Mode</th>
</tr>


 <?php

  include ("config.php");

  $sql = "SELECT Date, Snex, Tnex, Mode FROM datatb";
  $result = $conn->query($sql);
  if ($result->num_rows > 0) {

   while($row = $result->fetch_assoc()) 

   {
        echo "<tr><td>" . $row["Date"] . "</td><td>" . $row["Snex"]. "</td><td>". $row["Tnex"]. "</td><td>".  $row["Mode"]. "</td></tr>";


  }

</table>

2 个答案:

答案 0 :(得分:4)

您可以使用case表达式:

SELECT Date, 
       Snex, 
       CASE WHEN Tnex < 40 THEN Tnex END AS Tnex, 
       CASE WHEN Mode < 20 THEN Mode END AS Mode
FROM   datatb

答案 1 :(得分:2)

检查条件并将变量设置为字符串NULL,空格或值,然后使用该变量。在这种情况下,$Tnex

$Tnex = ($row["Tnex"] >= 40) ? '&nbsp;' : $row["Tnex"];

echo "<tr><td>" . $row["Date"] . "</td><td>" . $row["Snex"] . "</td><td>" . $Tnex . "</td><td>" .  $row["Mode"] . "</td></tr>";