Maximale Anzahl an where-Conditions

Scope

Erfahrenes Mitglied
Kann mir jemand sagen, wieviel where-Bedingungen ich
in MySQL verwenden kann?

Sagen wir ich habe 400 ids und 40 tabellen und möchte
aus allen Tabellen die Einträge mit einer der IDs löschen.

Mache ich das lieber mit 400*40 einzelnen Queries oder
irgendwie kombiniert?
 
Hä?
Vielleicht kannst Du mal die Tabellenstruktur hier posten...
Wenn ich Dich richtig verstanden habe:

WHERE-Clause gibt es immer nur eine. Die nachfolgenden Bedingungen sind aber beliebig. Dafür verwende die SQL Operatoren (AND, OR etc.).

Wenn Du eine Menge Datensätze löschen möchtest, gibt es zwei Varianten:

a) Datensätze einzeln löschen (schlechte Performance)
Code:
for (BEDINGUNG) {
   DELETE FROM ...
}

b) Du findest ein Attribut, dass den Bereich einschränkt. Angenommen du möchtest alle Elemente mit einer ID zwischen 100 und 500 löschen:

Code:
DELETE FROM table WHERE ID>100 AND ID<500;

In gewissen SQL-Slangs gibt es auch das Keyword BEETWEEN. Damit gehts genauso. Muss aber gestehen, dass ich nicht mal weiß, ob es das bei MySQL gibt. Arbeite eigentlich nur mit den <> Operatoren.

Ciao,
Mike
 
Du benötigst für jede Tabelle ein DELETE-Statement.

Mir ist keine Grenze bekannt, was die Anzahl an Bedingungen in der WHERE-Klausel angeht.

Wenn Du jedoch mit IN arbeitest genügt eine einzige Bedingung:
SQL:
DELETE FROM tab 
WHERE tab.ID IN (
  1,2,4 # Liste der IDs, durch Komma getrennt
  );
Gruß hpvw
 
Zurück