Помощ с MySQL заявка

semprom

Registered
Здравейте.
Значи имам таблица с поле "Updated" в него се записва кога за последно е обновен даден запис от таблицата. Може ли с САМО С MySQL заявка да се изкарат записите примерно които не са обновявани от 30 минути?

Благодаря и се надявам да сте ме разбра ли. :D
 
По този начин мисля, че само с MySQL няма как да стане. Ако искаш само със заявката да изкарваш трябва полето да ти е DATETIME или TIMESTAMP
 
adrian каза:
По този начин мисля, че само с MySQL няма как да стане. Ако искаш само със заявката да изкарваш трябва полето да ти е DATETIME или TIMESTAMP

Промених полето на TIMESTAMP.
Може ли да ми кажеш как ще стане заявката?
 
[sql]SELECT *
FROM таблица
WHERE TIME_TO_SEC(TIMEDIFF(CURRENT_TIMESTAMP , Updated)) > 1800[/sql]

Първият вариант, който ми хрумна е това. Може и да има и по-добро решение, но нямам време да мисля друго.

1800 е 30 мин по 60 секунди. Ако искаш друг интервал (примерно 1 час), тогава промени заявката така:

60x60 = 3600 =>

[sql]SELECT *
FROM таблица
WHERE TIME_TO_SEC(TIMEDIFF(CURRENT_TIMESTAMP , Updated)) > 3600[/sql]
 
adrian каза:
[sql]SELECT *
FROM таблица
WHERE TIME_TO_SEC(TIMEDIFF(CURRENT_TIMESTAMP , Updated)) > 1800[/sql]

Първият вариант, който ми хрумна е това. Може и да има и по-добро решение, но нямам време да мисля друго.

1800 е 30 мин по 60 секунди. Ако искаш друг интервал (примерно 1 час), тогава промени заявката така:

60x60 = 3600 =>

[sql]SELECT *
FROM таблица
WHERE TIME_TO_SEC(TIMEDIFF(CURRENT_TIMESTAMP , Updated)) > 3600[/sql]

Благодаря ти, всичко е точно :)
 
semprom каза:
Здравейте.
Значи имам таблица с поле "Updated" в него се записва кога за последно е обновен даден запис от таблицата. Може ли с САМО С MySQL заявка да се изкарат записите примерно които не са обновявани от 30 минути?

Благодаря и се надявам да сте ме разбра ли. :D

И без да променяш начина на записване става много лесно:

[sql]SELECT * FROM `tablica` WHERE `Updated` < ( UNIX_TIMESTAMP() - 30*60 )[/sql]

Даже така заявката ще може да ползва индекса на колоната (ако си сложил), така намалява многократно натоварването => горепосочената от колегата заявка ще е в пъти по-бавна.

Ето ти го за поле от тип timestamp:

[sql]SELECT * FROM `tablica` WHERE `Updated` < ( NOW() - INTERVAL 30 MINUTE )[/sql]
 

Back
Горе