我有以下查詢的問題(如果這是一個重複的問題,那麼我很抱歉,但我似乎無法找到任何東西,可以幫助我):MySQL的GROUP_CONCAT在
SELECT d.*, GROUP_CONCAT(g.name ORDER BY g.name SEPARATOR ", ") AS members
FROM table_d AS d LEFT OUTER JOIN table_g AS g ON (d.eventid = g.id)
WHERE members LIKE '%p%';
MySQL顯然無法在WHERE子句中處理GROUP_CONCAT列的比較。 所以我的問題很簡單。有沒有解決方法,就像使用子查詢或類似的東西?我真的需要這段代碼才能工作,除了在查詢本身中處理這些內容外,沒有別的選擇可供使用。
編輯1:
我不會讓實際的代碼,因爲這可能是機密,我得請與我同行。無論如何,我只是寫了這段代碼給你一個關於這個陳述看起來如何的印象,儘管我同意你的看法,這並沒有多大意義。我將在一分鐘內查看下面的答案,然後我會再回復你。再次thnx所有的幫助已經!
編輯2:使用HAVING
嘗試過,但只有當我不使用GROUP BY
工作。當我嘗試它時,它給我一個語法錯誤,但是當我刪除GROUP BY
時,查詢完美地工作。事情是,我需要GROUP BY
,否則查詢將對我毫無意義。
編輯3:
好了,我犯了一個愚蠢的錯誤,並把HAVING
GROUP BY
,這顯然是行不通的了。感謝所有幫助,它現在可以工作!
'g.name like'%peter%''有什麼問題? – ajreal 2011-03-08 14:13:17