在WHERE子句中使用MYSQL GROUP_CONCAT

iag*_*tme 5 mysql sql aggregate

是否可以将GROUP_CONCAT放入MYSQL WHERE子句中?

我有两个表(一个用于成员,一个用于付款信息).例如

会员表

num, memNumber, fullName, coporateName, surname
001, mem0010, Joe Bloggs, NULL, Bloggs
002, mem0015, NULL, BBC
003, mem0017, John Peters, NULL
004, mem0101, Emma Jane, NULL
Run Code Online (Sandbox Code Playgroud)

付款表

num, memberID, subscriptionYear, amount
001, mem0010, 2008, 30
003, mem0010, 2010, 40
004, mem0015, 2010, 40
005, mem0017, 2009, 35
006, mem0101, 2009, 35
007, mem0017, 2010, 40
Run Code Online (Sandbox Code Playgroud)

我有以下查询从两个表中检索信息(我已经简化它以使其更具可读性).

SELECT members.num, members.memNumber , members.fullName , members.corporateName ,
       CONCAT(members.corporateName , members.surname) AS searchSurname ,
       GROUP_CONCAT(payment.subscriptionYear) As subscriptionYear ,
       GROUP_CONCAT(payment.amount) AS amount    
FROM members 
LEFT JOIN payment ON members.memNumber = payment.memberID    
WHERE `subscriptionYear` NOT LIKE '%2009%'    
GROUP BY members.num    
ORDER BY `searchSurname` ASC
Run Code Online (Sandbox Code Playgroud)

但它从subscriptionYear专栏的结果中删除了"2009" .无法看到2009年是否在GROUP_CONCAT中?

Min*_*ker 25

在分组之前,您希望使用HAVING,这在分组后发生.