Php 显示与数据库字段不同的值
我的MySQL数据库专栏有以下内容:Php 显示与数据库字段不同的值,php,mysql,sql,if-statement,Php,Mysql,Sql,If Statement,我的MySQL数据库专栏有以下内容: +-------+ |Status | +-------+ | | // empty | | // empty |Reject | |reject | +-------+ 我对这个状态有一些条件,所以用户可以看到这个案例的判断: 如果结果拒绝(如果选择项目则自动)或拒绝(某些用户在编辑数据后键入此项),则回显拒绝 如果结果为空或“接受”或“接受”回显接受 我试过这个: if($row['Status'] == "Reject"){
+-------+
|Status |
+-------+
| | // empty
| | // empty
|Reject |
|reject |
+-------+
我对这个状态有一些条件
,所以用户可以看到这个案例的判断:
拒绝
(如果选择项目则自动)或拒绝
(某些用户在编辑数据后键入此项),则回显拒绝为空
或“接受”或“接受”回显接受if($row['Status'] == "Reject"){
echo "Reject";
}
elseif($row['Status'] == "reject"){
echo "Reject";
}
else{
echo "Accept";
}
但是,它总是回响Accept
。原因下面查询的结果为空:
SELECT COUNT(Serial_number) AS n, SUM(S) AS S,SUM(A) AS A, SUM(B) AS B, SUM(C) AS C,
ROUND((((SUM(S)*1)+(SUM(A)*1)+(SUM(B)*0.4)+(SUM(C)*0.1))/COUNT(Serial_number)*1000000),0) AS PPM,
Status
FROM inspection_report WHERE Model LIKE 'MDV-Z700D' AND Lot_no LIKE '010A'
AND Line LIKE 'FA 21' AND Range_sampling ='177X0001-177X0100' GROUP BY Range_sampling
结果:
n S A B C PPM Status
20 0 1 0 0 50000 //this empty status make echo = Accept
如果使用GROUP\u CONCAT(Status)
结果为,.Reject,Reject
。那么,如何响应上述2种情况
注意:如果在该列中有拒绝值,则我希望返回拒绝结果,即使我有很多接受值。 如果
状态
为空
,则可以使用合并
GROUP_CONCAT(COALESCE(Status,'Accept'))
但是如果它是一个空字符串'
,请使用内联if语句
GROUP_CONCAT(if(Status = '' or Status = 'accept', 'Accept', Status))
更新
IF(LOCATE('Reject',GROUP_CONCAT(DISTINCT if(Status = '' or Status = 'accept', 'Accept', Status))) > 0, 'REJECT', 'ACCEPT')
请看一下我的补充资料。实际上我只需要一个结果。我使用
GROUP\u concat
只是为了向您显示我的列中有拒绝值。因此,如果在该列中发现拒绝,则结果必须是拒绝。您已经提到,如果列表中的一个是reject
,则整个结果将是reject
,对吗?请参阅我的最新答案。也可以,它可以工作,但我有两种拒绝类型:拒绝和拒绝。如何在这个查询中提到它?那么你的意思是拒绝
不同于拒绝
?不,我的意思是有时客户端类型拒绝或拒绝,如果使用这个查询,它可以检测到拒绝为拒绝,如果是这样,它没有问题。但是,如果列中的另一个案例只提到reject no reject,那么这个查询是否仍然可以使用?