我的 MySQL 数据库专栏内容如下:
+-------+
|Status |
+-------+
| | // empty
| | // empty
|Reject |
|reject |
+-------+
我对这个Status
有一些条件,所以用户可以看到这种情况的判断:
- 如果结果
拒绝
(如果选择项目则自动)或拒绝
(某些用户在编辑数据后输入此内容)echo Reject - 如果结果
为空
或“接受”或“接受”回显接受
我已经尝试过这个:
if($row['Status'] == "Reject"){
echo "Reject";
}
elseif($row['Status'] == "reject"){
echo "Reject";
}
else{
echo "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_CONCAT(Status)
结果是,,Reject,reject
。那么,如何回显每个条件引用上面的2种情况?
注意:我希望如果该列中有拒绝值,即使我有很多接受值,结果也会回显拒绝。
最佳答案
<罢工>罢工>
<罢工>如果Status
是 NULL
,您可以使用COALESCE
GROUP_CONCAT(COALESCE(Status,'Accept'))
罢工><罢工>罢工>
但如果是空字符串 ''
,利用inline IF statement
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')
关于php - 显示与数据库字段不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14027223/