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


Фото
- - - - -

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


  • Чтобы отвечать, сперва войдите на форум
4 ответов в теме

#1 Ivan2016

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

Опубликовано 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;

 

 

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

 

Прикрепленные файлы:

  • Прикрепленный файл  sql-1.jpg   97,67К   10 раз скачано
  • Прикрепленный файл  sql-2.jpg   109,09К   11 раз скачано


#2 Плохиш

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

Опубликовано 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
  • Пользователь
  • 25 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Пермь

Опубликовано 11.02.2018 - 09:39

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

 

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

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

 

Нужно так:

 

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

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

 

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


 


Изменено: Ivan2016, 11.02.2018 - 09:40


#4 Ivan2016

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

Опубликовано 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
  • Пользователь
  • 25 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Пермь

Опубликовано 12.02.2018 - 21:07

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






0 пользователей читают эту тему

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