我有一个包含8列及以下值的表格
1 2 3 4 5 6 7 8
0 1 0 0 0 0 0 0
我需要一个查询来分析列中的1和0的否,如果0的大于4,那么它应该打印失败的其他通行证,我该怎么做?通过MYSQL还是PHP?
答案 0 :(得分:2)
SELECT CASE WHEN `1`+`2`+`3`+`4`+`5`+`6`+`7`+`8` < 4 THEN 'Failed' ELSE 'Passed' END
FROM test_table;
答案 1 :(得分:1)
可能不是很整洁,但您可以使用以下查询计算0的数量(假设您的列名为1
,2
等等:
SELECT IF(`1` = 0, 1, 0) +
IF(`2` = 0, 1, 0) +
IF(`3` = 0, 1, 0) +
IF(`4` = 0, 1, 0) +
IF(`5` = 0, 1, 0) +
IF(`6` = 0, 1, 0) +
IF(`7` = 0, 1, 0) +
IF(`8` = 0, 1, 0) NoOfZeros
FROM your_table;
测试用例:
CREATE TABLE your_table (`1` int, `2` int, `3` int, `4` int,
`5` int, `6` int, `7` int, `8` int);
INSERT INTO your_table VALUES (1, 0, 1, 0, 1, 0, 1, 0);
结果:
+-----------+
| NoOfZeros |
+-----------+
| 4 |
+-----------+
1 row in set (0.00 sec)
您可以从PHP运行此查询,并在结果集中的NoOfZeros
字段大于4时显示所需的错误消息。