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