Es gibt zwei Methoden zum Löschen von Daten in MySQL: eine ist die DELETE-Anweisung und die andere ist die TRUNCATE TABLE-Anweisung. Die DELETE-Anweisung kann Datensätze auswählen, die über WHERE gelöscht werden sollen. Mit TRUNCATE TABLE werden alle Datensätze in der Tabelle gelöscht. Daher ist die DELETE-Anweisung flexibler.
Wenn Sie alle Datensätze in der Tabelle löschen möchten, können Sie die folgenden zwei Methoden verwenden:
DELETE FROM table1 TRUNCATE TABLE table1Wobei sich TABLE im zweiten Datensatz befindet optional.
Wenn Sie einige Datensätze in der Tabelle löschen möchten, können Sie nur die DELETE-Anweisung verwenden.
Wenn in einer Tabelle ein Auto-Inkrement-Feld vorhanden ist, stellt das Auto-Inkrement-Feld nach der Verwendung von TRUNCATE TABLE und DELETE ohne WHERE-Klausel zum Löschen aller Datensätze den Startwert auf 1 wieder her. Wenn Sie möchten dies nicht tun. Wenn ja, können Sie der DELETE-Anweisung ein permanentes WHERE hinzufügen, z. B. WHERE 1 oder WHERE true.
DELETE FROM table1 WHERE ...;
Die obige Anweisung scannt bei der Ausführung jeden Datensatz. Dies ist jedoch nicht vergleichbar, da die WHERE-Bedingung immer wahr ist. Obwohl dadurch der maximale Wert für die automatische Inkrementierung beibehalten werden kann, da alle Datensätze gescannt werden, sind die Ausführungskosten viel höher als bei DELETE ohne WHERE-Klausel.
Der größte Unterschied zwischen DELETE und TRUNCATE TABLE besteht darin, dass DELETE die zu löschenden Datensätze über die WHERE-Anweisung auswählen kann, die Ausführungsgeschwindigkeit jedoch nicht hoch ist.
DELETE FROM table1 WHERE 1;Nachdem Truncate gelöscht wurde, wird das MySQL-Protokoll nicht aufgezeichnet und die Daten können nicht wiederhergestellt werden. Der Effekt des Löschens ähnelt dem Löschen aller Datensätze in der MySQL-Tabelle nacheinander, bis der Löschvorgang abgeschlossen ist, während das Abschneiden dem Beibehalten der Struktur der MySQL-Tabelle und dem Neuerstellen der Tabelle entspricht. Alle Zustände entsprechen einem neuer Tisch. Es kann auch die Anzahl der gelöschten Datensätze zurückgeben. TRUNCATE TABLE kann bestimmte Datensätze nicht löschen und keine gelöschten Datensätze zurückgeben. Aber es wird sehr schnell ausgeführt.
Im Gegensatz zu Standard-SQL-Anweisungen unterstützt DELETE die Klauseln ORDER BY und LIMIT. Durch diese beiden Klauseln können wir die zu löschenden Datensätze besser steuern. Wenn wir beispielsweise nur einen Teil der durch die WHERE-Klausel gefilterten Datensätze löschen möchten, können wir LIMIT verwenden. Wenn wir die letzten Datensätze löschen möchten, können wir ORDER BY und LIMIT zusammen verwenden. Angenommen, wir möchten die ersten 6 Datensätze in der Benutzertabelle löschen, deren Name „Mike“ lautet. Sie können die folgende DELETE-Anweisung verwenden:
DELETE FROM users WHERE name = 'Mike' LIMIT 6;
DELETE FROM users WHERE name = 'Mike' ORDER BY id DESC LIMIT 6;
Das Obige ist der Inhalt von MySQL Advanced (21) zum Löschen von Tabellendaten und mehr Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!