Die Benutzer integrieren es selbst in PHP. Verwenden Sie keine Abfrage
Löschen in MYSQL, um Multi-Table-Daten und zugehörige Daten zu löschen
Es gibt viele Möglichkeiten, Daten in MySQL zu löschen. Die am häufigsten verwendete Methode ist die Verwendung von „Delete“ zum Löschen von Datensätzen. Im Folgenden werde ich einige einfache Beispiele zum Löschen eines einzelnen Datensatzes und zum Löschen von mit mehreren Tabellen verknüpften Daten vorstellen.
1. Aus t1 löschen, wobei Bedingung
gilt
2. t1 aus t1 löschen, wobei Bedingung
gilt
3. t1 aus t1,t2 löschen, wobei Bedingung
gilt
4. t1,t2 aus t1,t2 löschen, wobei Bedingung
gilt
Die ersten drei sind machbar, aber der vierte ist nicht machbar.
Das heißt, die einfache Verwendung der Löschanweisung kann nicht dazu führen, dass Daten aus mehreren Tabellen gelöscht werden. Sie können jedoch eine Kaskadenlöschung erstellen und eine Kaskade zwischen zwei Tabellen einrichten
Durch das Löschen einer Beziehung können Sie beim Löschen von Daten in einer Tabelle gleichzeitig damit verbundene Daten in einer anderen Tabelle löschen.
1. Löschen Sie alle Datensätze aus der Datentabelle t1, die übereinstimmende ID-Werte in der Datentabelle t2 haben
Der Code lautet wie folgt
LÖSCHEN SIE t1 AUS t1,t2 WHERE t1.id=t2.id oder LÖSCHEN SIE AUS t1 MIT t1,t2 WHERE t1.id=t2.id
2. Suchen und löschen Sie Datensätze aus der Datentabelle t1, die nicht mit der Datentabelle t2 übereinstimmen
Der Code lautet wie folgt
LÖSCHE t1 AUS t1 LEFT JOIN T2 ON t1.id=t2.id WHERE t2.id IS NULL or
AUS t1 LÖSCHEN, MIT t1 LINKS MIT T2 AUF t1.id=t2.id VERBINDEN, WO t2.id NULL IST
3. Suchen Sie in den beiden Tabellen nach denselben aufgezeichneten Daten und löschen Sie die Daten in beiden Tabellen
Der Code lautet wie folgt
LÖSCHE t1,t2 aus t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t1.id=25
Beachten Sie, dass t1 und t2 beim Löschen von t1 und t2 hier keine Aliase sein können
Zum Beispiel:
Der Code lautet wie folgt
lösche t1,t2 aus Tabellenname als t1, verbinde Tabelle2_name als t2 auf t1.id=t2.id, wobei
Tabellenname.id=25
Es ist falsch, die Daten auszuführen (MYSQL-Version ist nicht niedriger als 5.0, in 5.0 ist es in Ordnung)
Der obige Satz wird als
umgeschrieben
Der Code lautet wie folgt
lösche Tabellenname, Tabellen2_Name aus Tabellenname als T1, verbinde Tabelle2_Name als T2 mit
t1.id=t2.id wobei table_name.id=25
Es ist falsch, die Daten auszuführen (MYSQL-Version ist kleiner als 5.0, aber in 5.0 ist es in Ordnung
).
)
So löscht DELETE zugehörige Daten und implementiert eine Kaskadenlöschung
TABELLE erstellen, WENN `dcsmember` NICHT EXISTIERT (
`id` int(3) auto_increment ist kein Null-Primärschlüssel,
`name` varchar(12) nicht null,
„Passwort“ varchar(40) nicht null,
`Telefonnummer` char(20),
`time` DATETIME NOT NULL,
`jifen` int(8) not null DEFAULT '20',
`email` varchar(40) NOT NULL,
`power` int(2) NOT NULL DEFAULT '1'
)ZEICHENSATZ gb2312";
TABELLE erstellen, WENN NICHT EXISTIERT `sp`(
`spid` int(5) auto_increment ist kein Null-Primärschlüssel,
`spuserid` int(3) nicht null,
`spname` varchar(12) nicht null,
`spmoney` float(6) nicht null,
`spopt` char(20) nicht null,
`spsay` varchar(50),
`sptime` DATUM STANDARD '2008-10-01',
`spendor` TINYINT(1) DEFAULT '1',
INDEX ( `spuserid` )
)ZEICHENSATZ gb2312";
Der Code lautet wie folgt
$sqldel="DELETE FROM dcsmember WHERE email='$value'";
Jetzt lösche ich die Informationen des Mitglieds aus der Mitgliedertabelle
, müssen Sie auch die Informationen des Mitglieds in einer anderen Tabelle löschen. dcsmember.ID ist ein Fremdcode, der sp.spuserid entspricht.
Wie schreibt man
Der Code lautet wie folgt
Löschen Sie d, s aus dcsmember d inner join sp s auf d.id = s.spuserid, wobei d.email="xxxxxx"