我有一个包含大约 300,000 行产品信息的数据库。
我需要检索具有重复 UPC (COUNT(upc) > 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)。
任何见解将不胜感激!