gpt4 book ai didi

MySQL - 计算具有相等值的行,但前提是名称出现在其他列中

转载 作者:行者123 更新时间:2023-11-28 23:21:36 25 4
gpt4 key购买 nike

我有一个包含以下列的 JT 表:

Id  |  Name |  Date     
1 | John | 2015-01-01
2 | Alex | 2016-01-01
3 | Pete | 2016-01-01
4 | Alex | 2016-08-08
5 | John | 2016-08-08

我想计算具有相同日期的行数。我通过以下方式完成了此操作:

$query_21="SELECT Date, COUNT(*) AS total FROM JT GROUP BY Date";
$result_21=mysql_query($query_21);

while($row = mysql_fetch_array($result_21)) {

echo $row['Date'] . ":";
echo $row['total'] . "<br>";
}

这很好返回:

2015-01-01: 1

2016-01-01: 2

2016-08-08: 2

但是,我有一个变量 $Name,我想进行调用,以便仅当 $Name 在计数期间包含在其中一行中时,才将一行插入到结果数组中。所以如果 $Name = "John"它应该返回:

2015-01-01: 1

2016-08-08: 2

最佳答案

这可以通过使用 exists 条件的 where 子句来完成,但是由于您无论如何都要分组,我认为使用 having子句可能更优雅:

SELECT   Date, COUNT(*) AS total 
FROM jt
GROUP BY Date
HAVING (COUNT(CASE name WHEN $name THEN name END) > 0)

注意:
$name 当然应该是准备好的语句中的绑定(bind)变量。

关于MySQL - 计算具有相等值的行,但前提是名称出现在其他列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41381806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com