10

GROUP_CONCAT を使用して特定の注文に関連付けられているすべての人を取得する SQL クエリがあります。GROUP_CONCAT フィールド内を検索する方法はありますか?

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

「Eric」は連絡先リストにあるため、クエリで行 01 と 03 を返す必要があります。

これどうやってするの?

4

1 に答える 1

25

これを試して:

SELECT orders.orderID, 
GROUP_CONCAT(contacts.firstName, " ", contacts.lastName) AS attachedContacts
FROM orders
JOIN contacts ON orders.contactID=contacts.contactID
GROUP BY orders.orderID DESC
HAVING attachedContacts LIKE '%Eric%'
于 2010-09-27T18:55:20.137 に答える