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

标签 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

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

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 来自 t_school

虽然查询给出了错误的输出。

最佳答案

您可以使用条件聚合:

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

参见 demo在 SQLFiddle 中,如果您想做一些聚合操作,像 id 这样的非聚合列在 select 中将毫无意义。

关于php - 如果它具有相同的值,如何检查一行中的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45025048/

相关文章:

javascript - ajax jquery 表单停止发送电子邮件

php - Yii2 应用程序未显示在 Heroku 域上

php - 阅读另一个 PHP 网站

php - 用于计算单列评级的复杂 SQL SELECT

php - 如何在 Ionic 2 中使用 mysql

javascript - 接受错误后重新加载页面

php - 从 CodeIgniter 中的数据库获取下拉列表

mysql - 转换一个有效的 SQL NOT IN

java - 我可以使用 Java 将数据插入数据库,但无法选择并显示它

mysql - 在存储过程中使用mysql事务