Just nu i M3-nätverket
Gå till innehåll
tonlof

LÖST Radera rader där timetolive har uppnåtts.

Rekommendera Poster

Hej, försöker radera rader baserat på en inbäddad select.

 

SQLite databasen är uppbyggd enlig nedan.

id, timestamp, data, timetolive

1, 2016-03-05 11:40:15, datatext1, 3600
2, 2016-03-05 11:40:23, datatext2, 1
3, 2016-03-05 11:40:33, datatext3, 10
 

timetolive är antal sekunder raden ska få överleva.

delete from queue where (SELECT ((JulianDay(datetime('now')) - JulianDay(timestamp)) * 24 * 60 * 60) > timetolive from queue) > 0

Enbart select ger mig en etta eller nolla beroende på om timetolive har uppnåtts baserat på aktuell tid. Så långt är det okay.

SELECT ((JulianDay(datetime('now')) - JulianDay(timestamp)) * 24 * 60 * 60) > timetolive from queue

Problemet är alltså hur jag sätter ihop dessa så att om select-satsen ger en etta så ska aktuell rad raderas.

Stort tack på förhand.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Postad (redigerade)

Jag tror jag löste det.

delete from queue where ((JulianDay(datetime('now')) - JulianDay(timestamp)) * 24 * 60 * 60) > timetolive 
Redigerad av tonlof

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...