![]() |
Re: Wie mehrfache Einträge finden?
Kleiner Hinweis... MySQL kann noch keine SubQueries, soweit ich weiß.
|
Re: Wie mehrfache Einträge finden?
Sorry, da kann ich dir auch nicht wirklich helfen.
Nur einen Tipp kann ich dir geben: Schaue dir einfach mal PostgreSQL an. Vielleicht gefällt es dir ja. ;) (ist eine objekt-orientierte DB) mySQL kann einfach nix :? Nachtrag: Zitat:
Wie willst du irgendwas in deiner DB ohne SubQueries machen, das über SELECT A FROM B hinausgeht? |
Re: Wie mehrfache Einträge finden?
Zitat:
|
Re: Wie mehrfache Einträge finden?
Zitat:
Beispielsweise alle Records in eine Liste und dort die doppelten finden, oder über eine doppelte Schleife, wo man dann jeweils über select count(*) form meinetabelle where (feld1 = wert1) and ( ... ) ... die anzahl auslesen und damit auf doppelte schließen kann. Ich muss mich selbst korrigieren MYSQL 4.1 kann Subselects ... Einen direkten Vergleich zwischen MySQL, Postgres und MAXDB findest Du hier: ![]() |
Re: Wie mehrfache Einträge finden?
Hi,
vielleicht kann MySQL ja das :
SQL-Code:
Sonst wüsste ich auch nicht weiter.
/* Sql query */
select t.* from test t, test u where t.nachname = u.nachname and t.vorname = u.vorname and t.id <> u.id Selbst wenn da klappt, wüsste ich nicht, wie man das entsprechende Update ohne subquery machen könnte. Wenn Du allerdings, wie oben geschrieben, manuell updaten willst, sollte Dir oben genanntes sql statement weiter helfen (falls es denn funktioniert). Lutz |
Re: Wie mehrfache Einträge finden?
Die MySQL-Version, die ich hab (4.1) kann Subquerys. Die hab ich auch schonmal hingekriegt, aber ich weiß nicht mehr wie :?
Aber vielleicht find ich ja anhand der Doku raus, wie die genau aussehen müssen. Danke an alle an dieser Stelle. Und auch nochmal danke an lume96 für das letzte Statement. Ich werds gelich mal probieren. Edit: lume96, du bist mein Held! Es klappt! |
Re: Wie mehrfache Einträge finden?
Hi,
Freut mich, dass es so läuft. Noch 'nen kleiner Hinweis : Wenn Du Vor- und Nachnamen vergleichenen willst, und falls die Daten von verschieden Usern eingegeben werden, würde ich unbegingt noch 'n trim() und 'n upper() um jedes 'Field' bauen, z.B.:
SQL-Code:
Da der Vergleich field1=field2 case-sensitive ist, könnten Dir 'Leertaste' und unterschiedliche Gross- und Kleinschreibung einen Strich durch die Rechnung machen (z.B. 'MEYER' <> 'Meyer ').
/**/
where trim(upper(t.nachname))= trim(upper(u.nachname)) MfG Lutz |
Re: Wie mehrfache Einträge finden?
Nicht ganz ;)
Bei MySQL wird auch beim Vergleichsoperator = nur zwischen Groß- und Kleinschreibung unterschieden, wenn ein (VAR)CHAR-Feld das Attribut "Binary" hat (bzw. ein BLOB-Feld anstelle eines TEXT-feldes benutzt wird). Das mit dem Trim ist aber eine gute Idee. |
Re: Wie mehrfache Einträge finden?
Ok, sorry (wie gesagt, ich benutze, beruflich bedingt, eher Interbase/Firebird).
Dabei hatte ich extra kurz in der MySQL Dok nachgeschaut, ob es dort upper()/ucase() und trim() gibt, bevor ich es hier vorschlage. Lutz |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz