#mysql #sql #wordpress #pivot #aggregate-functions
#mysql #sql #wordpress #сводная #агрегатные функции
Вопрос:
Я не слишком разбираюсь в SQL и WordPress. Я создал некоторую форму на WordPress, и при добавлении данных все значения вставляются в эту таблицу WordPress
имя таблицы — wp_usermeta и составлено таким образом, что umeta_id — user_id — meta_key — meta_value
Теперь я скопировал таблицу в новую, используя этот sql-код CREATE TABLE elaborazione_Meta_User_data
LIKE wp_usermeta
; ВСТАВИТЬ В elaborazione_Meta_User_data
SELECT * FROM wp_usermeta
Таким образом, я могу выполнять любые «модификации» без потери данных
Моя цель — начать с этой ситуации
Чтобы прийти к этой ситуации
Я понимаю, что мне нужно что-то транспонировать, но теперь я знаю, как это сделать.
Другая информация, которая должна помочь решить эту проблему:
- если есть способ «идентифицировать» идентификаторы пользователей в этой таблице, возможно, должно быть просто создать код sql
- то же самое для meta_key. Это должны быть новые столбцы
- данные в столбце должны быть заполнены значением в meta_value
- в случае «того же значения» значение, подлежащее «обновлению» и отображаемое в конце кода, должно быть тем, которое имеет более высокое значение в usermeta_ID
- в следующий раз я собираюсь добавить все данные в новую таблицу с самого начала, чтобы предотвратить эту проблему
Ответ №1:
Вы сводите с помощью условной агрегации:
select user_id,
max(case when meta_key = 'State' then meta_value end) state,
max(case when meta_key = 'Addresss' then meta_value end) address,
max(case when meta_key = 'House_address1' then meta_value end) house_address1,
max(case when meta_key = 'type_house1' then meta_value end) type_house1,
max(case when meta_key = 'House_address2' then meta_value end) house_address2,
max(case when meta_key = 'type_house2' then meta_value end) type_house2
from wp_usermeta
group by user_id
Ответ №2:
Для этого вы можете использовать GROUP_CONCAT
функцию mysql. Ознакомьтесь с этой ссылкой для получения подробного руководства о том, как его использовать. https://ubiq.co/database-blog/transpose-rows-columns-dynamically-mysql /