php - 如何对数据库数据使用 CASE 条件

标签 php mysql

我尝试将 CASE CONDITION 与我的数据库中的数据一起使用,但它不起作用

这是我的代码:

SELECT 
  CASE WHEN `vessel_name` == 'SAMMY' AND `vessel_status` == 'AVAILABLE PROPOSE LINEUP'
      THEN 'asdf' 
  END 
FROM `pending_list`

如果该陈述为TRUE,我会尝试回显AVAILABLE PROPOSE LINEUP

这是我的数据库:
列名 vessel_name 行值 SAMMY
列名称vessel_status行值AVAILABLE PROPOSE LINEUP

如果条件为真,示例结果必须是:

Vessel Name:  SAMMY              
Vessel Status:  AVAILABLE PROPOSE LINEUP

如果条件为假,示例结果必须是:

Vessel Name:  SAMMY              
Vessel Status:  NO AVAILABLE PROPOSE LINEUP

这是我的完整代码:

<table class="table table-hover table-condensed" data-toggle="table" id="resultTable">
            <thead class="thead-inverse">
            <tr>
                <th data-sortable="true">Vessel Name</th>
                <th data-sortable="true">Vessel Status</th>
            </tr>
            </thead>
            <tr>
                <th>SAMMY</th>
                <th><?php "SELECT CASE WHEN `vessel_status` = 'AVAILABLE PROPOSE LINEUP' 
            THEN 'AVAILABLE PROPOSE LINEUP' 
            ELSE 'NO AVAILABLE PROPOSE LINEUP' 
       END as `vessel_status`
FROM `pending_list`
WHERE `vessel_name` = 'SAMMY'"  ?></th>
            </tr>

最佳答案

如果您能提供一些示例数据就好了。根据我的假设我给出了我的意见。请检查...

你可以像下面这样编写sql

"SELECT vessel_name, CASE WHEN `vessel_status` = 'AVAILABLE PROPOSE LINEUP' THEN 'AVAILABLE PROPOSE LINEUP' ELSE 'NO AVAILABLE PROPOSE LINEUP' END as vessel_status 
FROM `pending_list`"

另外在html部分必须调用mysql连接和查询执行方法来获取数据。目前尚不清楚此查询将从表中获取多少数据。如果获取超过 1 条记录,则必须循环遍历它,否则仅显示数据,如下所示

$sql = "SELECT vessel_name, CASE WHEN `vessel_status` = 'AVAILABLE PROPOSE LINEUP' THEN 'AVAILABLE PROPOSE LINEUP' ELSE 'NO AVAILABLE PROPOSE LINEUP' END as vessel_status 
FROM `pending_list`";

$conn = mysql_connect('host','username','password') or die(mysql_error);
mysql_select_db(db_name);
$recordset = mysql_query($sql ,$conn) or die(mysql_error);

如果只有一条记录出现,则

$obj = mysql_fetch_object($recordset);
$vessel_status = $obj->vessel_status ;
$vessel_name = $obj->vessel_name ;

如果有多个记录正在发送,则循环遍历它

while($obj = mysql_fetch_object($recordset))
{
    $vessel_status = $obj->vessel_status ;
    $vessel_name = $obj->vessel_name ;
}


mysql_free_result($recordset);

关于php - 如何对数据库数据使用 CASE 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38727170/

相关文章:

mysql - 是否可以在 MySQL 表上执行内联 GROUP BY?

php - 这是构建 Bootstrap 面板的正确方法吗?

PHP高效查询mysql数据库

javascript - 如何使用 php 获取数据并将其传递给 JavaScript 变量

Mysql减少列长度可能出现的问题

sql - 根据条件选择 MAX() 的更简单方法?

php - 如何在 Windows 上设置 cron 作业?

php - PHP/MySQL/jQuery 中的字符编码问题

mysql - 如何阻止 Rails 转义 SQL 中特定列的值?

mysql - 使用 codeigniter 进行条件插入