Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL拥有if_Mysql_Sql_Having_Having Clause - Fatal编程技术网

MySQL拥有if

MySQL拥有if,mysql,sql,having,having-clause,Mysql,Sql,Having,Having Clause,我在使用MySQL查询时遇到问题。如果标签是“5”,那么我只想要当天超过10行的记录,但其他标签的行数不限。在查询中实现这一点的最佳方法是什么 SELECT id,name,label,date FROM items GROUP BY DATE('date'), label HAVING COUNT(id) > 10 IF label = 5 如果我正确理解了你的问题,这个查询将为你提供你所需要的 只有当“日期”列的定义必须是日期类型时,此查询才能工作,否则除非您强制转换“日期”列,否则

我在使用MySQL查询时遇到问题。如果标签是“5”,那么我只想要当天超过10行的记录,但其他标签的行数不限。在查询中实现这一点的最佳方法是什么

SELECT id,name,label,date
FROM items
GROUP BY DATE('date'), label
HAVING COUNT(id) > 10 IF label = 5

如果我正确理解了你的问题,这个查询将为你提供你所需要的

只有当“日期”列的定义必须是日期类型时,此查询才能工作,否则除非您强制转换“日期”列,否则它将不工作

这个问题令人困惑。根据你的评论,试试这个

SELECTs.total, i.* FROM 
items AS i
LEFT JOIN (
    SELECT label, COUNT(id) AS total
    FROM items
    WHERE label = 5 AND date = CURDATE()
    GROUP BY label
    HAVING COUNT(id) > 10
) AS s ON s.label = i.label
WHERE date = CURDATE()

如果我正确理解了你的问题,这个查询将为你提供你所需要的

只有当“日期”列的定义必须是日期类型时,此查询才能工作,否则除非您强制转换“日期”列,否则它将不工作

这个问题令人困惑。根据你的评论,试试这个

SELECTs.total, i.* FROM 
items AS i
LEFT JOIN (
    SELECT label, COUNT(id) AS total
    FROM items
    WHERE label = 5 AND date = CURDATE()
    GROUP BY label
    HAVING COUNT(id) > 10
) AS s ON s.label = i.label
WHERE date = CURDATE()
这将为不在GROUP BY中的列返回不确定的值


这将为不在GROUP BY中的列返回不确定的值。

我将在单个查询中执行此操作:

SELECT id, name, label, date
FROM items
WHERE date >= date(now()) and date < date(now()) + interval 1 day
GROUP BY label
HAVING (label <> 5) or (COUNT(id) > 10);
选择id、名称、标签、日期
从项目
其中日期>=日期(现在())和日期<日期(现在())+间隔1天
按标签分组
具有(标签5)或(计数(id)>10);

这似乎是最简单的方法。

我将在一个查询中执行此操作:

SELECT id, name, label, date
FROM items
WHERE date >= date(now()) and date < date(now()) + interval 1 day
GROUP BY label
HAVING (label <> 5) or (COUNT(id) > 10);
选择id、名称、标签、日期
从项目
其中日期>=日期(现在())和日期<日期(现在())+间隔1天
按标签分组
具有(标签5)或(计数(id)>10);

这似乎是最简单的方法。

但这会将结果限制为标签为5的项目,对吗?我想要标签的所有记录,但当标签为5时,只有那些行数超过10的记录。请再次检查我的答案,但这会将结果限制为标签为5的项目,对吗?我想要标签的所有记录,但当标签为5时,只有那些行的计数超过10的记录。请再次检查我的答案。是否可以执行
have(count(id)>10且标签=5)或(label!=5)
?是否可以执行
have(count(id)>10且标签=5)或(label!=5)