SQL MAX() - Fehler?
Hallo,
ich habe ein Problem mit meiner SQL Abfrage.
Die Tabelle:
Der Befehl:
INSERT INTO excel (titel, vorherige) VALUES ('allo', (SELECT titel from excel where (SELECT max(id) from excel)));
Ich möchte immer, wenn ich den Befehl ausführe in der Spalte 'vorherige' den Titel des vorherigen Datensatzes stehen haben. Was ist damit falsch?
Ich habe es jetzt schon öfter probiert - es kommt auch kein Fehler!
Danke im voraus.
2 Antworten
Vom Beitragsersteller als hilfreich ausgezeichnet
Nutzer, der sehr aktiv auf gutefrage ist
WHERE (SELECT MAX(id) FROM excel)
ist wohl nicht ganz das, was du meinst. Das sollte wohl eher so heißen:
WHERE id = (SELECT MAX(id) FROM excel)
ultrarunner
27.11.2022, 22:10
@crRaphi
Du musst jede Abfrage einzeln senden. Mehrere Abfragen in einem einzigen SQL-String sind hier nicht zulässig.
@ultrarunner
Also brauche ich alles unter dem senden an die db zweimal?
Oder kann ich das noch anderes machen?
Ist das so zu Speichern nicht unsinnig? Der vorherige Datensatz hat immer id-1 dann kannst du auch sparen das zu speichern.
Danke für deine Hilfe funktioniert.
Wenn ich jedoch eine zweite Abfrage anhänge:
Dann kommt immer eine Fehler:
Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: 25 column index out of range in C:\Users\rapha\OneDrive\Desktop\dwl - route\php\lekerstellen.php:34 Stack trace: #0 C:\Users\rapha\OneDrive\Desktop\dwl - route\php\lekerstellen.php(34): PDOStatement->execute() #1 {main} thrown in C:\Users\***\OneDrive\Desktop\***\php\lekerstellen.php on line 35
Ich nutze eine SQLite DB.
Ich hoffe Du kannst mir helfen.
Danke im voraus!