Php SQL заявка за изтриване на цяла колона

cHuBakA

Registered
Здравейте. Имам следната БД. Как мога да задам php заявка за изтриване на всичко в KOLONA3 по старо от 2 месеца (от датата на настоящият ден)

SQL:
+------------+-----------+-----+---------------+---------------------------------+
| kolona1    | kolona2   |   kolona3      |           kolona4       |
+------------+-----------+-----+---------------+---------------------------------+
| Lionel     | Messi     |  6/24/1987     |   2022-09-25 12:57:22   |
| Michael    | Jordan    |  2/17/1963     |   2022-08-25 13:57:22   |
| Lebron     | James     |  12/30/1984    |   2022-07-25 16:57:22   |
| Lionel     | Messi     |  6/24/1987     |   2022-09-25 12:57:22   |
| Michael    | Jordan    |  2/17/1963     |   2022-08-25 13:57:22   |
| Lebron     | James     |  12/30/1984    |   2022-07-25 16:57:22   |
+------------+-----------+-----+---------------+---------------------------------+

Резултатът да бъде празна колона

SQL:
+------------+-----------+-----+---------------+---------------------------------+
| kolona1    | kolona2   |   kolona3      |           kolona4       |
+------------+-----------+-----+---------------+---------------------------------+
| Lionel     | Messi     |  6/24/1987     |   2022-09-25 12:57:22   |
| Michael    | Jordan    |  2/17/1963     |   2022-08-25 13:57:22   |
| Lebron     | James     |                |   2022-07-25 16:57:22   |
| Lionel     | Messi     |                |   2022-06-25 12:57:22   |
| Michael    | Jordan    |                |   2022-05-25 13:57:22   |
| Lebron     | James     |                |   2022-04-25 16:57:22   |
+------------+-----------+-----+---------------+---------------------------------+
 
Последно редактирано:

cHuBakA

Registered
Благодаря. Обаче нищо не се получава. Дали не трябва да се добави и kolona4 към заявката за да има от къде да си направи изчисление за времето? Или бъркам?
 

dakata__92

Super Moderator
Можеш да използваш заявка за обновяване на информацията.

SQL:
UPDATE table_name
SET column_3 = NULL
WHERE
    UNIX_TIMESTAMP( DATE_FORMAT( column_3, "%Y-%m-%d 00:00:00" ) ) < UNIX_TIMESTAMP( NOW( ) - INTERVAL 2 MONTH )
 

anonimen

Super Moderator
Трябва да е нещо такова:

SQL:
DELETE
FROM Table
WHERE kolona3 < DATEADD(MONTH, -2, GETDATE())
Това ще изтрие целите записи, а авторът иска само да нулира стойността им във въпросната колона. Както показа даката, това става с "update table set column = NULL where ..."
 

Blinky

Administrator
Екип
Това ще изтрие целите записи, а авторът иска само да нулира стойността им във въпросната колона. Както показа даката, това става с "update table set column = NULL where ..."
Ох, да не видях, че иска празни места - прав си да, ще е с update table set. Сори, моя грешка, добре че не си пуснал куерито. :)
 

cHuBakA

Registered
Можеш да използваш заявка за обновяване на информацията.

SQL:
UPDATE table_name
SET column_3 = NULL
WHERE
    UNIX_TIMESTAMP( DATE_FORMAT( column_3, "%Y-%m-%d 00:00:00" ) ) < UNIX_TIMESTAMP( NOW( ) - INTERVAL 2 MONTH )
Благодаря! Това е работещо решение
 

Горе