Hallo Ich habe die folgende Tabelle T:Alternative zu ‚wo col in (Liste)‘ für MySQL
id 1 2 3 4
col a b a c
ich wählen tun möchten, dass die ID zurückgibt, col, wenn die Gruppe von (col) mit Graf (col)> 1
eine Möglichkeit, es zu tun ist
SELECT id,col FROM T
WHERE col IN (SELECT col FROM T GROUP BY(col) HAVING COUNT(col)>1);
der Praktikant select (von rechts) gibt 'a' und Haupt (links) gibt 1 zurück, a und 3, ein
Das Problem ist, dass die Where in-Anweisung extrem langsam zu sein scheint. In meinem realen Fall haben die Ergebnisse von der internen Auswahl viele 'Col's, etwas über 70000 und es dauert Stunden.
Im Moment ist es viel schneller, die interne Auswahl und die Hauptauswahl alle IDs und UPCs zu bekommen und die Kreuzung lokal zu machen. MySQL sollte diese Art von Abfragen effizient verarbeiten können.
Kann ich das Wo für einen Join oder etwas schneller ersetzen?
Dank
Danke. Das hat gut funktioniert. Ich habe vor tcol das Schlüsselwort 'as' eingefügt. Ich habe nicht einmal einen Index für col, aber es hat sehr schnell funktioniert. – duduklein