代码之家  ›  专栏  ›  技术社区  ›  Cyndi

MySQL选择行,如果列为空,则忽略行

  •  4
  • Cyndi  · 技术社区  · 7 年前

    使用Dreamweaver CS5/MySQL

    当前查询可以工作,但当Charname列为空时,它也会显示行。我正在努力设置,但每次都失败了。提前谢谢。

    mysql_select_db($database_login_form, $login_form);
    $query_Recordset1 = "SELECT * FROM users";
    $Recordset1 = mysql_query($query_Recordset1, $login_form) or die(mysql_error());
    $row_Recordset1 = mysql_fetch_assoc($Recordset1);
    $totalRows_Recordset1 = mysql_num_rows($Recordset1);
    
    
    <?php do { ?>
    <li><a href="profile.php?id=<?php echo $row_Recordset1['id']; ?>"><?php echo $row_Recordset1['Charname']; ?></a></li>
    <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
    
    2 回复  |  直到 7 年前
        1
  •  4
  •   Tim Biegeleisen    7 年前

    你可以用 COALESCE() 处理空白(空字符串)和 NULL 同样的道理:

    SELECT * FROM users WHERE COALESCE(Charname, '') != ''
    

    你从来没有告诉我们“empty”实际上是什么意思,但一个好的猜测应该是空字符串或 无效的 .

        2
  •  4
  •   Shafiqul Islam    7 年前

    像这样更新您的查询

    SELECT * FROM users where Charname IS NOT NULL or Charname != '';
    

    COALESCE() 检查为空

    SELECT * FROM users WHERE COALESCE(Charname, '') != '';
    

    有关更多信息

    https://www.w3schools.com/sql/sql_isnull.asp

    你也可以检查你的php端

    假设这样

    $Charname = $row_Recordset1['Charname'];
    if($Charname == '' || $Charname === null || is_null($Charname)){
       continue;
    }