kämmen LÖSCHEN und WIE in einer sqlite-Anweisung
Ich versuche die beiden zu verbinden in einer einzigen Aussage, ich würde sogar sich für zwei getrennte Aussagen..... Ich weiß, dass es möglich sein muss, aber wie?
dies ist, was ich versucht habe:
DELETE FROM myTable WHERE myValue LIKE 'findme%';
und:
DELETE FROM myTable WHERE EXISTS (SELECT * FROM myTable WHERE myValue LIKE 'findme%');
Bekomme ich eine Fehlermeldung für die zweite Aussage sagt so etwas wie, Sie können nur ein einzelnes Ergebnis für eine WIE die Aussage mit einer anderen Aussage...
die zwei Aussagen?
Die erste Abfrage sollte funktionieren. Was passiert, wenn Sie es ausführen? Die SQLite-version verwenden Sie?
Die erste Abfrage sollte funktionieren. Was passiert, wenn Sie es ausführen? Die SQLite-version verwenden Sie?
InformationsquelleAutor gypsyDev | 2011-02-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre erste Aussage funktionieren sollte. Versuchen Sie, ohne das abschließende Semikolon vielleicht?
Die zweite ist nicht logisch. Deine Unterabfrage nicht korreliert, die erste und man kann nicht Scannen eine Tabelle, die geändert wird. Eigentlich das, was ich erwarten würden, aus dieser Abfrage, ob das jemals laufen, ist, dass alle Zeilen gelöscht werden, wenn es eine einzige Zeile, in die Spalte passt...
Wenn Sie sich Fragen, warum die Lösungen mit den
IN
Klausel, die Arbeit und nicht derEXISTS
, es ist, weil dieEXISTS
Bedingung ausgewertet wird, für jede Zeile, in der Erwägung, dass dieIN
set einmal ausgewertet.Ich nehme an, Sie sind über eine API? Nächstes mal solltest du wahrscheinlich Stand es in der Frage!
Ich denke, die version von sqlite ist sqlite3? Ich bin ändern der Datenbank von objective-C in xCode-Projekt.
Die Aussagen enthalten sollte das Semikolon verwenden, wenn Sie die SQLite-shell, aber wenn Sie in der Regel schreiben Sie Ihre eigenen Programm, und verwenden Sie eine Schnittstelle zu SQLite, brauchen Sie nicht zu Ihnen.
InformationsquelleAutor Benoit
Wenn diese Anweisung gibt alle Zeilen zurück
dann ersetzen Sie "select *" mit "löschen" gelöscht werden soll.
Diese Arbeit sollte mit jeder SQL-Datenbank, solange Sie über ausreichende Berechtigungen verfügen.
InformationsquelleAutor Mike Sherrill 'Cat Recall'
Diese Werke auf mich:
InformationsquelleAutor neurino
Haben Sie versucht das?
InformationsquelleAutor
InformationsquelleAutor Sorin Haidau