Ich habe eine Datenbank wie folgt.MYSQL Holen Sie sich den letzten Datensatz, wo die Startzeit ist gleich der vorherigen Datensätze
| p_id | p_start_date | p_start_time | p_end_date | p_end_time | p_order |
| 2 | 2017-06-01 | 00:00 | 2017-06-01 | 01:00 | 1 |
| 4 | 2017-06-01 | 01:00 | 2017-06-01 | 02:15 | 2 |
| 1 | 2017-06-02 | 00:00 | 2017-06-02 | 01:30 | 3 |
| 3 | 2017-06-03 | 00:00 | 2017-06-03 | 00:30 | 4 |
Ich möchte p_id 2 und 4 auf 15 Minuten verschieben. Wie würde ich tue dies mit dem folgenden:
UPDATE
press as p
SET
p.p_start_date = cast(DATE_ADD(CONCAT(p.p_start_date, ' ', p.p_start_time), INTERVAL 15 MINUTE) as DATE),
p.p_start_time = cast(DATE_ADD(CONCAT(p.p_start_date, ' ', p.p_start_time), INTERVAL 15 MINUTE) as TIME),
p.p_end_date = cast(DATE_ADD(CONCAT(p.p_end_date, ' ', p.p_end_time), INTERVAL 15 MINUTE) as DATE),
p.p_end_time = cast(DATE_ADD(CONCAT(p.p_end_date, ' ', p.p_end_time), INTERVAL 15 MINUTE) as TIME),
p.p_order = p.p_order + 1
WHERE
p.p_order >= 1 AND p.p_order <= 2
Allerdings weiß ich nicht, was die letzten p_order
, da es sein wird, viele Arbeitsplätze voneinander im Anschluss an sein könnte.
Wissen Sie, wie ich das herausfinden würde?
Was über die Codeformatierung? – tilz0R
Ist das besser? Wusste nicht, dass es ohne die Code-Tags so weit wäre. –
@ S.Goodwin was meinst du? (: – num8er