Перейти к содержимому


Фото
- - - - -

Выполнить запрос в phpMyAdmin склеить одинаковые свойства


  • Please log in to reply
4 replies to this topic

#1 Ivan2016

Ivan2016
  • Пользователь
  • 28 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Пермь

Posted 10.02.2018 - 22:07

В БД нужно склеить одинаковые свойства с несколькими значениями в 1 строку, разделить точка с запятой, смотреть скрин 1

 

Чтобы было так, как на скрине 2:

------------------------------------------------------------------------
49    158    Газообразная; Жидкая
49    162    G 1/2"; G 3/4"; G 1"; G 1 1/4"
49    175    176; 196; 240
50    157    G 1"; G 1 1/4"; G 1 1/2"

 

Пробую для таблицы s_options делать запрос:

 

SELECT `product_id`,
         GROUP_CONCAT(DISTINCT `feature_id` ORDER BY `feature_id` DESC SEPARATOR '; ')
       FROM `s_options`
       GROUP BY `product_id`;

 

Мне в ответ пишет:

Данное выделение не содержит уникального столбца. Изменение сетки, выставление галочки, редактирование, копирование и удаление невозможно.
 

Пробую так не помогает:

ALTER TABLE s_options ADD newid INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;

 

 

Может быть я запрос неправильно делаю первый?

 

Attached Files



#2 Плохиш

Плохиш
  • Забаненый
  • 98 сообщений
  • Программирование
  • Версия CMS:2.x
  • Откуда:Орел

Posted 11.02.2018 - 09:30

Пробуйте

 

SELECT `product_id`,feature_id,
         GROUP_CONCAT(DISTINCT `value` ORDER BY `feature_id` DESC SEPARATOR '; ')
       FROM `s_options`
       GROUP BY `product_id`, feature_id;       


#3 Ivan2016

Ivan2016
  • Пользователь
  • 28 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Пермь

Posted 11.02.2018 - 09:39

Код супер, только value  нужно по возрастанию, чтобы делалось, сейчас так:

 

50; 40; 32; 25; 20; 15; 10

Углекислый газ; Кислород; Аргон; Азот

 

Нужно так:

 

10; 15; 20; 25; 32; 40; 50

Азот; Аргон; Кислород; Углекислый газ

 

И самое важное, чтобы сохранить после запроса эти упорядоченные значения в БД.


 


Edited by Ivan2016, 11.02.2018 - 09:40.


#4 Ivan2016

Ivan2016
  • Пользователь
  • 28 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Пермь

Posted 11.02.2018 - 09:51

Пробуйте

 

SELECT `product_id`,feature_id,
         GROUP_CONCAT(DISTINCT `value` ORDER BY `feature_id` DESC SEPARATOR '; ')
       FROM `s_options`
       GROUP BY `product_id`, feature_id;       

 

Результатом является вывод всех строк в phpMyAdmin, а как изменить код, чтобы посмотреть только объединенные строки.

То есть сейчас все заподряд строки показаны.

 


 



#5 Ivan2016

Ivan2016
  • Пользователь
  • 28 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Пермь

Posted 12.02.2018 - 21:07

Задача поменялась, я объединил одинаковые строки (feature_id) для product_id
Мне нужно узнать вдруг, что-то еще осталось не объединено, пожалуйста, помогите запрос составить,
чтобы выявить остались ли еще одинаковые строки у product_id






0 user(s) are reading this topic

0 пользователей, 0 гостей, 0 скрытых