Я ищу группу по следующим критериям:
так скажем, у меня есть, как я могу сгруппировать их всех
product1, 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
Можно ли создать один оператор выбора для возврата этих сгруппированных значений?
Спасибо заранее
Короткий ответ — нет.» Как MySQL узнает, по какой группе вы хотите группироваться в конкретной ситуации? Это не будет. Вам необходимо отправить MySQL разные запросы SQL для каждой ситуации.
Если в вашем пользовательском интерфейсе пользователь решил сгруппировать по одной вещи, отправьте MySQL запрос на группировку по этому. Если они решили группировать по чему-то другому, отправьте MySQL запрос на группировку по этому. Вы должны выбрать в PHP, прежде чем сказать MySQL, что делать. Вы не можете ожидать, что MySQL прочитает ваши мысли и узнает, что «в этом случае он хочет группировать по X».
Однако вы можете группировать по всем этим полям, отдавая им приоритет. То есть сначала сгруппируйте по этому, затем по этому и т. д.
SELECT * from products
group by
product_name, brand_name,
upc, isbn, mpn, ean, model_number
Но это не собирается группировать по одному или другому. Он будет группироваться по всем из них, отдавая приоритет первым из упомянутых.
Других решений пока нет …