通过假设表MySQL / PHP中的列来设置值

时间:2010-08-14 16:33:27

标签: php mysql

我有一个包含8列及以下值的表格 1 2 3 4 5 6 7 8
0 1 0 0 0 0 0 0
我需要一个查询来分析列中的1和0的否,如果0的大于4,那么它应该打印失败的其他通行证,我该怎么做?通过MYSQL还是PHP?

2 个答案:

答案 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的数量(假设您的列名为12等等:

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时显示所需的错误消息。