2014-12-05 2 views
-1

Я ищу группу по следующим критериям:MySQL группу любым одним или несколькими из нескольких полей

так что позволяет сказать, что я, как я могу сгруппировать их все 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 

Возможно ли создать один оператор select, чтобы вернуть эти сгруппированные значения?

Заранее благодарим

+1

Дайте полное заявление SQL поэтому его ясно, что положение вы пытаетесь положить, что в – developerwjk

+0

я пытаюсь:. SELECT * из продуктов группы по (относятся PRODUCT_NAME, BRAND_NAME) или UPC или ISBN или артикулы или ЕАН или model_number –

ответ

3

Короткий ответ: «Нет». Как MySQL знает, какой из них вы хотите группировать в конкретной ситуации? Это не так. Вам нужно отправить MySQL другой SQL-запрос для каждой ситуации.

Если в пользовательском интерфейсе пользователь решил сгруппировать по одной вещи, отправьте MySQL запрос на группу. Если они решили группировать что-то еще, отправьте MySQL запрос на группу. Вам нужно выбрать PHP, прежде чем рассказывать MySQL о том, что делать. Вы не можете ожидать, что MySQL прочитает ваш разум и узнает «в этом случае он хочет группировать X».

Вы можете, однако, группировать все эти поля, придавая им приоритет. То есть группа этой одной первой, затем один на один, и т.д. Как:

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

Но это не будет группировать по одному или другому. Он будет группироваться всеми из них, уделяя первостепенное внимание первому упоминанию.

+0

В настоящее время я использую вложенный запрос, который работает хорошо, но я получаю повторяющиеся результаты, которые я должен проверить против создания 3 запросов mysql для каждой группы продуктов для достижения моей цели. Вы можете подумать о лучшем способе? –

+0

@Adrian Браун. 'select different' возможно. – developerwjk

+0

Спасибо за помощь –

Смежные вопросы