2011-04-19 75 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%'");