Выберите из таблицы table.column1, обработайте значение, вставьте в столбцы 2 и 3 - PullRequest
0 голосов
/ 15 мая 2018

Еще 2 столбца были недавно добавлены в таблицу с уже большим количеством столбцов и строк.

Эти 2 столбца ( B и C ) должны содержать аналогичные значения, которые таблица уже имела из другого столбца, A .

table.A : 2018-05-15h00: 00 / 2018-05-15h23: 00 [текст] (значение может отличаться, но формат тот же)

table.B должно быть: 2018-05-15 00: 00: 00 [Метка времени без часового пояса]

таблица. C должно быть: 2018-05-15 23: 00: 00 [Метка времени без часового пояса]

Это было бы довольно просто из PHP (пожалуйста, не обращайте внимания на код, это всего лишь пример):

<?php
$query = "SELECT a FROM table;";
$result = pg_query($conn, $query);
while ($row = pg_fetch_assoc($result)) {
  $var = explode("/", $row[0]);
  $varB = str_replace("h", " ", $var[0]);
  $varB .= ":00";
  $varC = str_replace("h", " ", $var[1]);
  $varC .= ":00";
  $query = pg_query($conn, "UPDATE table SET b='$varB', c='$varC' WHERE a='$row[0]';" );
}
?>

Но я бы лучше использовал для этого подходящий метод. Я не уверен, как долго этот SQL будет работать, идея состоит в том, чтобы сделать работу как можно более гладкой. Если бы PHP был лучшим выбором здесь, я бы пошел на это. Ищу предложения. Спасибо!

1 Ответ

0 голосов
/ 15 мая 2018

Вы можете использовать только запрос MySQL вместо вызовов PHP

UPDATE Table_B
SET
    Table_B.col1 = Table_A.col1,
    Table_B.col2 = Table_A.col2
FROM
    Tableone AS Table_B
    INNER JOIN TableTwo AS Table_A
        ON Table_B.some_id = Table_A.some_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...