約 300,000 行の製品情報を含むデータベースがあります。重複する UPC (COUNT(upc) > 1) を含む
行を取得する必要があり、結果の説明の少なくとも 1 つが特定の文字列 (たとえば、「Reed」) と一致します。
たとえば、次の行がすべて選択されます (desc、upc のペア)
Deer D7394 62226173
Reed R2536 62226173
Deer D7217 62226173
しかしどれも
Deer D0173 62278389
Deer D7289 62278389
Deer D9272 62278389
ここに私が取り組んでいるクエリがあります:
SELECT a.desc, a.upc, a.sku, a.short_description
FROM inventory a
JOIN
(SELECT upc, desc
FROM inventory
GROUP BY upc
HAVING COUNT(upc) > 1) b
ON a.upc = b.upc
WHERE ((a.desc LIKE '%Reed%') OR (b.desc LIKE '%Reed%'))
AND a.upc != ''
AND a.upc != 0
ORDER BY upc;
私はMySQLに比較的慣れていませんが、これはうまくいくようです。ただし、一部の結果では一致しない行が返されません (つまり、Reed R2536 は返されますが、Deer D7394 は返されません)。
どんな洞察も大歓迎です!