Voici une requête SQL que j'ai légèrement nettoyée (uniquement les noms de colonne/table/base de données). J'ai gardé la structure comme la production. C'est une requête extraite de mon journal MySQL.La requête SQL ne renvoie pas les résultats attendus
SELECT master.pk AS pk,
master.vendor_id AS vendorId,
master.vendor_text AS vendorName,
master.device_id AS deviceId,
master.device_did AS deviceDid,
master.device_text AS deviceName,
master.class_id AS classId,
master.class_text AS className,
master.oem_id AS oemId,
master.oem_did AS oemDid,
master.oem_text AS oemName,
master.oem_vendor_text AS oemVendor,
master.comment AS comment,
master.v1 AS v1,
master.v2 AS v2,
master.status AS status,
dev_mod_join.mod_text AS module
FROM master
LEFT JOIN dev_mod_join
ON master.device_did = dev_mod_join.dev_id
WHERE (
master.device_text LIKE CONCAT("%", 'search term', "%")
OR master.vendor_text LIKE CONCAT("%", 'search term', "%")
OR master.oem_text LIKE CONCAT("%", 'search term', "%")
OR master.oem_vendor_text LIKE CONCAT("%", 'search term', "%")
)
GROUP BY master.vendor_text
LIMIT 0, 25
Pour une raison quelconque, cela renvoie uniquement un résultat par fournisseur. C'est étrange. Il peut y avoir plusieurs appareils par fournisseur. Si je recherche un fournisseur dont je sais qu'il contient beaucoup de périphériques, il retournera toujours un seul périphérique pour ce fournisseur (il renvoie également d'autres périphériques qui ont d'autres fournisseurs, mais quelque chose correspond au terme recherché, mais il ne donne qu'un vendeur).
Tout ce qui me manque, je pense qu'il a quelque chose à voir avec les "OR", mais d'après ce que je sais, cela ne devrait pas être le cas.
L'aide est appréciée, comme toujours.
EDIT: OMG, je l'ai peut-être juste compris. J'ai utilisé GROUP BY au lieu de ORDER BY.
Wow, regardé que pendant un certain temps et, comme 5 minutes SO et je l'obtiens
Cette clause 'GROUP BY' serait illégal dans d'autres saveurs SQL. Je pense que vous devriez essayer de supprimer cela et de nous faire rapport. – bernie
c'est effectivement ce que c'est. Je vous remercie. – Tim