Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/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选择是否确定应实现的条件_Mysql - Fatal编程技术网

MySql选择是否确定应实现的条件

MySql选择是否确定应实现的条件,mysql,Mysql,我的查询有两个条件,如果count(a.id)大于1,那么where条件是像“%2%”这样的天数,或者像“%6%”这样的天数。但我不知道该怎么做。我试过下面这个问题,但它错了 有人能帮我吗?谢谢 对我的英语很抱歉 SET @time = '20:59:59'; SELECT * FROM `msshift` a WHERE IF( a.`TIMEFROM` < a.`TIMETO`, CAST(@time AS TIME) BETWEEN a.`TIMEF

我的查询有两个条件,如果count(a.id)大于1,那么where条件是像“%2%”这样的天数,或者像“%6%”这样的天数。但我不知道该怎么做。我试过下面这个问题,但它错了

有人能帮我吗?谢谢

对我的英语很抱歉

SET @time = '20:59:59';

SELECT *
FROM `msshift` a
WHERE IF(
        a.`TIMEFROM` < a.`TIMETO`,
        CAST(@time AS TIME) BETWEEN a.`TIMEFROM` AND a.`TIMETO`,
        (CAST(@time AS TIME) BETWEEN CAST('00:00:00' AS TIME) AND a.`TIMETO`) OR 
        (CAST(@time AS TIME) BETWEEN a.`TIMEFROM` AND CAST('24:00:00' AS TIME))
    ) = 1 AND PLANT = '1011' AND IF(COUNT(a.ID) > 1, a.DAYS LIKE '%2%', a.DAYS LIKE '%6%')
SET@time='20:59:59';
挑选*
从'msshift'a
如果(
a、 'TIMEFROM`1,a.DAYS类似于'%2%',a.DAYS类似于'%6%'))

不能在where子句中使用聚合函数。这就是“拥有”条款的目的

如果不看结构,不知道你的目标是什么结果,我无法说出具体的查询是什么,但这里有一个例子

表:富 id:INT 外国识别码:INT 姓名:CHAR

SELECT count(*) as grouped_count from foo
GROUP BY foreign_id
HAVING grouped_count > 5
这将返回属于外部表且其组中有5条以上记录的每组记录

希望这有帮助