如果行中的列具有相同的值,如何检查它?

时间:2017-07-11 03:50:27

标签: php mysql

如果它们具有相同的值,我想检查表中的列。

ID    School_Name     Student    Status
1        Virginia        Alex         2
2        Virginia        John         2
3       Wonderbow        Devi         1
4     San Antonio       Lucas         1
5     San Antonio       Larsa         2

如果每个status的值为2,如何检查列School_Name。输出是这样的:

ID       School_Name    school_stat
 1          Virginia      TRUE      
 2         Wonderbow     FALSE
 3       San Antonio     FALSE

因此,如果每个学校名称中的所有学生的状态均为2,则结果为TRUE。

当前查询:

SELECT *,SUM(case when status > 1 then TRUE else FALSE end) as school_stat from t_school

虽然查询提供了错误的输出。

2 个答案:

答案 0 :(得分:0)

您可以使用条件聚合:

SELECT
    School_Name,
    IF(COUNT(1) = COUNT(IF(Status = 2, 1, NULL)), 'TRUE', 'FALSE') school_stat
FROM t_school
GROUP BY School_Name

在SQLFiddle中查看demo,如果你想做一些聚合事情,那么像id这样的非聚合列在select中没有意义。

答案 1 :(得分:0)

  

使用group by子句对 school_name

进行分组

实施例,

SELECT ID,School_Name,(case when status > 1 then 'TRUE' else 'FALSE' end) as school_stat from temp1
group by School_Name
order by ID asc;

请参阅demo