【问题标题】:one SQL query for active users and inactive users?一个针对活跃用户和非活跃用户的 SQL 查询?
【发布时间】:2015-04-08 09:02:22
【问题描述】:

数据库中有一个表包含用户名,状态(活动或非活动)。我需要显示一个包含两个组的页面。第一组将用于活动用户,第二组将用于非活动用户。只允许使用一个选择查询。这意味着这两个组没有单独的 SQL 语句。

【问题讨论】:

  • 提交你所做的代码。

标签: php


【解决方案1】:

你可以用'if'来分隔

<?php
$sql = "SELECT * FROM tblUser";
$query = mysql_query($sql);

$result = mysql_fetch_array($query);

foreach($result as $user){
    if($user['status'] == 'active'){
        //your code here...
    }else{
        //your code here...
    };
};

?>

【讨论】:

    【解决方案2】:

    您可以做的就是一次将它们全部拉入,然后当您写入页面时,您可以循环两次,一次回显所有活动用户,一次回显所有非活动用户。这将是一个快速而肮脏的解决方案。

    编辑:是的,您可以按状态订购,只需一个循环。

    只是一个简单的例子(如果你已经订购了它,那么活动是第一个(order by 'status' ASC)):

        echo "Active:<br /><ul>";
        $current = 'a';
        foreach($accounts as $c)
        {
            // Switch to the inactive list if your current list is still active, and your current item is inactive
            if($c->status == "inactive" && $current == 'a'){
            echo "</ul><br />Inactive<br /><ul>";
            $current = "i";
            }
            echo "<li>$c->username</li>"
    
        }
    

    【讨论】:

    • 按状态排序。只有一个循环
    • 谢谢,@Dagon 将此添加到答案中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-16
    • 2013-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多