4
我有一個SQL查詢使用GROUP_CONCAT獲取所有人連接到特定的順序。有沒有一種方法可以在GROUP_CONCAT字段內進行搜索?使用LIKE搜索GROUP_CONCAT使用LIKE
SELECT orders.orderID,
GROUP_CONCAT(contacts.firstName, " ", contacts.lastName) AS attachedContacts
FROM (orders)
JOIN contacts ON orders.contactID=contacts.contactID
GROUP BY orders.orderID
ORDER BY orders.orderID DESC
我想添加類似WHERE attachedContacts LIKE '%Eric%'
,與「Eric的連接只列出訂單,但仍然在查詢中包含的所有其他聯繫人。
查詢返回的數據,如:
orderID atachedContacts
01 Eric Siegel, John Smith
02 Jason Jackson, Bill O'Neil
03 Eric Siegel, Jason Jackson, Neil O'Ryan
我希望查詢返回行01和03,因爲「埃裏克是在聯繫人列表中。
我該怎麼做?
哇,居然成功了!我想沒有更簡單的方法來做到這一點? – 2010-09-27 19:02:55
'cleaner'是有爭議的,但是你可以使用'HAVING'子句來代替我相信的子查詢,或者在'ON'子句中''LIKE'的聯繫人上使用單獨的'JOIN',但是我會測試哪個一個更好/表現更好。 – Wrikken 2010-09-27 19:06:03
我不知道如何使用'HAVING',並且我發佈的查詢只是完整的一部分,那裏還有3個'JOIN'語句。 – 2010-09-27 19:09:53