MySQL select 行,如果列为空则忽略行

MySQL select rows and ignore row if column is blank

使用 Dreamweaver CS5 / MySQL

我正在尝试设置一个将显示数据行的查询,但前提是特定列中包含数据。如果 Charname 列为空,我不想显示该行。

目前查询有效,但它也会在 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)); ?>

像这样更新您的查询

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

您还可以使用 COALESCE() 来检查 null

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

了解更多信息

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

你也可以在你的php end

签到

假设是这样

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

您可以使用 COALESCE() 将空白(空字符串)和 NULL 视为同一事物:

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

您从未告诉我们 "empty" 的实际含义,但可以猜测是空字符串或 NULL.