我有一個包含大約300,000行產品信息的數據庫。
我需要與重複的UPC(COUNT(UPC)> 1),其中至少一個結果描述的特定的字符串匹配檢索行(‘裏德’,例如。)MySQL:如何檢索具有重複字段的所有行,匹配任何匹配行中的某個字段上的LIKE
對於例如,下面的行會都被選中(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)。
任何有識之士將不勝感激!
我剛剛測試了這兩個 - 我錯過了什麼,或者他們只滿足文本匹配標準?我對這種方法感興趣,但它也需要檢查重複項。 – Sara
你是對的 - 當我讀到它時我錯過了。我重新查詢了這些項目。 –
謝謝!我不知道你可以這樣使用'LIKE',而且這看起來會捕獲幾行並且有很多重複的行,而另一個查詢卻錯過了。我已經更新了接受的答案。 – Sara