2012-05-30 49 views
0

我有以下MySQL表productsMySQL的SELECT查詢從具體列

id, code, name, color 
1, 'D555', 'Men T-shirt', '' 
2, 'D556', 'Black Men T-shirt', 'D556' 
3, 'D557', 'Silver Men T-shirt', 'D556' 
4, 'D558', 'Men T-shirt', '' 
5, 'D559', 'Black Men T-shirt', 'D559' 
6, 'D560', 'White Men T-shirt', 'D559' 

color不爲空,如果產品具有另外的顏色,例如: 產物用代碼「D556」是黑色,也有銀色。

我使用SELECT * FROM products,但現在我想選擇主要產品(不含子顏色),即: D555, D556, D558, D559

  • 然後,我會選擇產品下的子顏色(因爲它是關於電子商店的衣服)。

這種表的結構可能嗎?

非常感謝您的關注!

回答

1
SELECT * FROM products WHERE color = '' or code = color; 

你可以考慮在兩個表正常化你的表如下所示:

products(id, code, name) 
alt_products(id, id_products, color) 
+0

Hihihi,很聰明!我會使用第一個選項,因爲我每個月都會上傳300個產品,而且我很難優化。非常感謝您的幫助!!! – user1410047

0

可能有用的是這樣的:

SELECT `id`, `code`, `name`, GROUP_CONCAT(`color` SEPARATOR ', ') as `colors` 
FROM products 
GROUP BY `code`