這是我的數據的MySQL返回所有結果,而無需複製數據
id cost cat foreign colours
--------------------------------------------------------
385_white 99 swarovski 12 black;blue
386_white 99 swarovski 12 black;blue;green
387_white 99 swarovski 12 yellow;green
389_white 99 swarovski 12 white;silver
385_white 99 swarovski 12 silver
這是我的查詢
$checkSQL=mysql_query("SELECT * FROM `products`");
while($r = mysql_fetch_assoc($checkSQL)) {
echo '<ul class="ColourList">';
$cols = explode(';', $r['colours']);
foreach ($cols as $col){
echo '<li class="' . $col . '">' . $col . '</li>';
}
echo '</ul>';
}
這基本上返回的顏色列表爲每個記錄
<ul>
<li>black</li>
<li>blue</li>
</ul>
然而我想返回一個單獨的列表,對於整個數據庫中的每種顏色和字母順序。所以基本上所有的顏色都可以在所有行中按照ABC順序拆分成一個列表,但沒有它們重複 - 這可能與我的客戶端設置有關嗎?只需要一些方向?想着explode
用replace
然後我們用ORDER BY ASC
命令?
是否允許DB標準化?如果是的話,我建議創建兩個新表:'顏色(colorId,colorName)'和'products_colors(productId參數,colorId)'到相關的產品和顏色可供選擇。 –
最好的是使用適當的實體關係,沒有一個字符串:( – ajreal