Как я могу извлечь данные из определенных строк через SQL и разделить их на свои собственные столбцы? - PullRequest
0 голосов
/ 16 мая 2019

Я прошу прощения, если я не могу объяснить это заранее, но я сделаю все возможное.

У меня есть таблица SQL. В таблице есть несколько столбцов. Один из которых помечен как «meta_key», а другой как «meta_value». Я хотел бы знать, как написать SQL, который будет извлекать определенные строки в одном столбце, а также собирать данные из другого столбца в той же строке и разделять все это в свои собственные столбцы. (Пожалуйста, прости меня, если это не имеет смысла.)

Я попробовал следующее, предоставленное другом:

SELECT meta_key, meta_value
FROM wp_gf_entry_meta
WHERE meta_key = 3 OR meta_key = 9 OR meta_key = 22 OR meta_key = 23 

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

Опять же, SQL, который был опробован, был:

SELECT meta_key, meta_value
FROM wp_gf_entry_meta
WHERE meta_key = 3 OR meta_key = 9 OR meta_key = 22 OR meta_key = 23 

Я не получил сообщений об ошибках выше, но это не обеспечило желаемый результат.

Вот скриншот таблицы перед SQL выше:

Here is a screenshot of the table before the above SQL:

and afterd

А вот скриншот после:

UPDATE

Я добился определенного прогресса. Я считаю, что я могу использовать то, что они называют «Агрегатной функцией».

Это приблизило меня к цели:

  SELECT 
  max(case when meta_key = 3 then meta_value end) Ticker,
  max(case when meta_key = 9 then meta_value end) Reason,
  max(case when meta_key = 22 then meta_value end) Resistance,
  max(case when meta_key = 23 then meta_value end) Support
  from wp_gf_entry_meta

Единственная проблема сейчас в том, что он возвращает только одну строку, и я не уверен, как заставить его возвращать более одной строки.

1 Ответ

0 голосов
/ 16 мая 2019

Попробуйте это:

SELECT meta_key, meta_value
FROM wp_gf_entry_meta
WHERE meta_key IN(3, 9, 22,23)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...