我有一个列表,如“2,3,7,8,9,10,12,13,14,16,18,22,28,30”。我有一个表,其中列有gridConfigId和ownerId。我需要找到所有gridConfigId,其中ownerId列表中没有至少一个给定的集合。
我尝试查询:
SELECT
gridConfigId, GROUP_CONCAT(ownerId separator ',') as userList
from
gridconfig_favourites gf
where
exists (select 1 from gridconfigs g where g.id=gf.gridConfigId and type='asset' and name='Photo Attributes')
GROUP BY gridConfigId
HAVING
userList != '2,3,7,8,9,10,12,13,14,16,18,22,28,30';
但是这个变体不起作用,因为ownerId
的顺序可能不同。我试图添加ORDER BY gridConfigId, ownerId
,但是查询不起作用。
1条答案
按热度按时间wvt8vs2t1#
我找到了解决方案。我只是在GROUP_CONCAT中添加了
ORDER BY ownerId
。结果是一个包含有序id的字符串,我可以像比较字符串一样比较id列表。
在文档中进行了描述。