J'ai une requête SQL qui utilise GROUP_CONCAT pour que toutes les personnes soient attachées à un certain ordre. Existe-t-il un moyen de rechercher dans le champ GROUP_CONCAT?Recherche GROUP_CONCAT utilisant 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
Je veux ajouter quelque chose comme WHERE attachedContacts LIKE '%Eric%'
, uniquement les commandes de la liste avec « Eric » attaché, mais comprennent toujours tous les autres contacts dans la requête.
Les retours de requête de données comme:
orderID atachedContacts
01 Eric Siegel, John Smith
02 Jason Jackson, Bill O'Neil
03 Eric Siegel, Jason Jackson, Neil O'Ryan
Je veux la requête pour renvoyer les lignes 01 et 03 parce que « Eric » est dans la liste des contacts.
Comment est-ce que je peux faire ceci?
Wow, qui fonctionnait vraiment! Je suppose qu'il n'y a pas de moyen plus propre de faire cela? –
'cleaner' est discutable, mais vous pouvez utiliser une clause 'HAVING' au lieu d'une sous-requête je crois, ou un autre' JOIN' distinct sur les contacts avec 'LIKE' dans la clause' ON', mais je testerais on est meilleur/performant mieux. – Wrikken
Je ne sais pas comment utiliser 'HAVING', et la requête que j'ai posté n'est qu'une partie de la requête complète, il y a 3 autres instructions' JOIN'. –