Originariamente inviato da fmortara
il problema è che cosi, cancelli solo il primo buco, ma lasci tutti gli altri...
no, effettivamente l'update lo farà anche su alcune che non ti interessanto:
codice:
4, primo, 2010-10-14 15:06:00,2010-10-14 15:07:59
5, secondo, 2010-10-14 15:08:00,2010-10-14 15:09:59
7, primo, 2010-10-14 15:12:00,2010-10-14 15:13:59
8, secondo, 2010-10-14 15:14:00,2010-10-14 15:15:59
10, primo, 2010-10-14 15:18:00,2010-10-14 15:19:59
11, secondo, 2010-10-14 15:20:00,2010-10-14 15:21:59
719, secondo, 2010-10-15 14:56:00, 2010-10-15 15:57:59
WHERE start > $data dove $data è la data della riga con id=3.
tu invece vuoi da id=6 in poi, giusto?
quindi:
codice:
UPDATE tabella SET start = FROM_UNIXTIME((UNIX_TIMESTAMP(start)-120))
WHERE start >= (SELECT data FROM tabella WHERE nome='terzo' ORDER BY data ASC LIMIT 1,1)
#la subquery restituisce la data del record con id =6 nel tuo esempio
e dopo fai il delete
codice:
DELETE FROM tabella WHERE nome ='terzo' AND id!=3
non ho ben chiaro se l'id 3 deve rimanere...