gpt4 book ai didi

mysql - 如何使用 FIND_IN_SET 或 LOCATE 或 Having to get a count

转载 作者:行者123 更新时间:2023-11-30 21:54:01 33 4
gpt4 key购买 nike

我有一个表,其中有多个数值对应一个 id。就像表中 id = 200 的值是 value_id =(337,22,878,4,10,99) 和 id=201 的值是 value_id=(337,22,878,99)。

我使用 group_concat 函数根据一个 id 获取所有值。

现在我想要一个不包含值的 id 的总数为 4。

为此我尝试了很多类似的东西

  1. COUNT( if(FIND_IN_SET(4, GROUP_CONCAT(value_id) )>0,1,NULL))
  2. COUNT( if(LOCATE(4, GROUP_CONCAT(value_id) )>0,0,1))
  3. GROUP_CONCAT(value_id) AS all_data,COUNT( if(LOCATE(4, all_data)>0,0,1))
  4. 计数(如果(GROUP_CONCAT(alloc.table_id) = 4, 0, 1))
  5. 我也尝试过使用 having(我不想使用它因为存储过程中的性能问题)

结果:我总是收到错误代码:1111。组函数使用无效

select manager_profile_id,group_concat(value_id) as all_data
from managers
where manager_profile_id =487 and team_id=2
GROUP BY manager_profile_id HAVING all_data !=4 ;

最佳答案

你可以这样做:

select manager_profile_id, group_concat(value_id) as all_data
from managers
where manager_profile_id = 487 and team_id = 2
group by manager_profile_id
having sum( value_id = 4 ) = 0;

关于mysql - 如何使用 FIND_IN_SET 或 LOCATE 或 Having to get a count,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46011987/

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