2011-04-19 74 views
0
table: 
id p_name  p_price 
1 tan   1 
2 soap   1 
3 pro tan 01 2 
4 pro tan 02 3 
5 pro tan 03 4 

我怎麼組就是我想要的HTML結果包含pro tan產品,一些MySQL的GROUP BY產品

product name  price 
tan    1 
soap    1 
pro tan   9 

PHP:

$q_products = $db->query("SELECT * FROM p_products 
          GROUP BY p_name 
          HAVING LIKE 'pro tan%'"); 
// follow by while loop for echoing 
+0

您可以選擇ProductName列和組由子,將爲這個樣本數據工作的前7個字符,但可能會破壞其他當產品名稱被輸入表中... – 2011-04-19 12:31:12

回答

4
select s.p_name, sum(s.p_price) 
from 
    (select left(p_name, 7) as p_name, 
    p_price from products) s 
group by s.p_name; 

應該做些什麼你要。

+0

@Frank:我試過那個,它給了我錯誤 – tonoslfx 2011-04-19 12:34:36

+0

你確定你試過這個嗎?在上面,你有'有'贊成'%''當它應該'有p_name LIKE'贊成%'' – anothershrubery 2011-04-19 12:37:18

+0

你得到了什麼錯誤(我改變了查詢,因爲它按照完整的p_name分組,不僅是第一個按您的要求填寫7個字符)? – 2011-04-19 12:37:31

0

OK,我不能發表評論還,但試試這個

$q_products = $db->query("SELECT * FROM p_products GROUP BY p_name having p_name LIKE 'pro tan%'");