mysql组由几个字段中的任何一个或多个组成

时间:2014-12-05 22:45:43

标签: php mysql group-by

我希望按以下标准分组:

所以我想我怎么能把它们全部分组呢     产品1,brand1,NULL,NULL,12,空,1234

product2,brand1,null,null,12,null,null

product3,brand2,null,null,null,1234

product1,brand1,null,null,null,null,null


(product_name AND brand_name) upc or isbn or mpn or ean or model_number 

是否可以创建一个select语句来返回这些分组值?

非常感谢提前

1 个答案:

答案 0 :(得分:3)

简短的回答是“不”。在特定情况下,MySQL如何知道您要分组哪一个?它不会。您需要为每种情况发送一个不同的SQL查询。

如果在用户界面中用户选择按一个组分组,请将MySQL查询发送给组。如果他们选择按其他方式进行分组,请将MySQL查询发送给组。在告诉MySQL要做什么之前,你必须选择PHP。你不能指望MySQL读懂你的想法并且知道“在这种情况下他想要按X分组。”

但是,您可以按所有这些字段进行分组,为其提供优先级。即首先是这一个,然后是那个,等等。喜欢:

SELECT * from products 
group by 
product_name, brand_name,
upc, isbn, mpn, ean, model_number

但这不是一组一组的。它将由所有人组成,优先考虑第一个提到的。