Heim >Datenbank >MySQL-Tutorial >Einführung in die Einschränkungen der „Delete from Where'-Unterabfrage in MySQL

Einführung in die Einschränkungen der „Delete from Where'-Unterabfrage in MySQL

不言
不言nach vorne
2019-02-21 11:53:164685Durchsuche

Dieser Artikel bietet Ihnen eine Einführung in die Einschränkungen beim Löschen von Where-Unterabfragen. Ich hoffe, dass er Ihnen weiterhilft .

1. Wenn Sie MySQL zum Ausführen des Löschvorgangs verwenden und die FROM-Klausel der Unterabfrage und das Aktualisierungs-/Löschobjekt dieselbe Tabelle verwenden, tritt ein Fehler auf. (Verwandte Empfehlungen: MySQL-Tutorial)

mysql> DELETE FROM 'tab' where id in (select min(id) from tag GROUP BY field1,field2 HAVING COUNT(id)>1 );
Fehler: Sie können die Zieltabelle „tab“ für die Aktualisierung in der FROM-Klausel nicht angeben. „Diese Einschränkung kann in den meisten Fällen durch Hinzufügen einer zusätzlichen Ebene ausgewählter Aliastabellen behoben werden, wie hier

DELETE FROM 'tab' where id in
(
    select id from 
    (
        select max(id) from 'tab' GROUP BY field1,field2 HAVING COUNT(id)>1
    ) ids
);

2.Aus Tabelle löschen... Die Tabelle kann keine Aliase verwenden

    mysql> delete from table a where a.id in (1,2); (Syntaxfehler)
  • mysql> select a.* from table a where a. id in (1,2);(erfolgreich ausgeführt)


Das obige ist der detaillierte Inhalt vonEinführung in die Einschränkungen der „Delete from Where'-Unterabfrage in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen