我尝试将 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/