Seite 1 von 1

erweiterte SQL-Suche

Verfasst: 25.12.2008 22:12
von MarcE
Servus!

Folgendes möchte ich (mittels phpMyAdmin) machen:
aus der "phpbb_users" möchte ich die Einträge mit einer bestimmten E-Mail Adresse raussuchen und mir anzeigen lassen.
Bei einem Eintrag sieht das so aus:

Code: Alles auswählen

SELECT * FROM `phpbb_users` WHERE `user_email` LIKE 'name@domain.net';
Super, geht auch. Wie sieht der Befehl aber bei mehreren (180) Einträgen aus?

Danke für eure Hilfe.

MarcE

Re: erweiterte SQL-Suche

Verfasst: 25.12.2008 23:11
von 4seven
evtl. so?

Code: Alles auswählen

SELECT * FROM `phpbb_users` WHERE `user_email` LIKE '@';

Verfasst: 25.12.2008 23:56
von MarcE
Nee, nicht wirklich. Das ergibt eine leere Antwort ("NULL").
Wenn man

Code: Alles auswählen

SELECT * FROM `phpbb_users` WHERE `user_email` LIKE '%@%';
nimmt, werden alle ("gültigen") aufgelistet.
Ich such was zum kombinieren, d.h. ich habe 180 E-Mail-Adressen und diese will ich aus den 5.404 User herausfiltern. Irgendsowas wie:

Code: Alles auswählen

SELECT * FROM `phpbb_users` WHERE `user_email` LIKE 'a@domain.net', 'b@domain.net';

Verfasst: 26.12.2008 01:30
von Dave

Code: Alles auswählen

SELECT * FROM `phpbb_users` WHERE `user_email` LIKE '%@domain.net' OR `user_email` LIKE '%@domain.org';
Das % is zu sehen wie sonst nen *. gibt dir also alles zurück was mit @domain.net oder @domain.org endet. Das "or" kannst du auch nach belieben erweitern.

MfG
Dave

Verfasst: 26.12.2008 01:38
von Pyramide
Woher kommen denn die Einträge?
  • Wenn diese einen bestimmten Muster entsprechen, dann arbeite mit LIKE und % (siehe Lösung von Dave)
  • Wenn diese in einer anderen Tabelle stehen, dann verwende

    Code: Alles auswählen

    WHERE user_email IN (SELECT email FROM andere_tabelle)
  • Wenn du eine Liste z.B. als PHP-Array hast, dann bau eine Anweisung in der Form

    Code: Alles auswählen

    WHERE user_email IN('email1', 'email2', 'email3')

Verfasst: 26.12.2008 14:16
von MarcE
Pyramide hat geschrieben:Woher kommen denn die Einträge?
Aus einer Textdatei. Es handelt sich um User, ohne Postings, die über ihre Mail-Adresse nicht erreichbar sind. Also Rückläufer vom Admin-Reminder.
  • Wenn du eine Liste z.B. als PHP-Array hast, dann bau eine Anweisung in der Form

    Code: Alles auswählen

    WHERE user_email IN('email1', 'email2', 'email3')
Aaaaah, genau das ist es. Vielen Dank!!!
Ich war mir einfach nicht über die Formatierung nicht im klaren. Wie kommt es das user_email dann nicht mehr in Anführungszeichen stehen darf? Muß mir wohl mal die Befehls-Referenz zu Gemüte führen... :roll:

Auf jeden Fall: vielen Dank für eure konstuktiven Antworten!

Mit sportlichen Grüßen

MarcE [ externes Bild ]

Verfasst: 26.12.2008 22:37
von Pyramide
MarcE hat geschrieben:Wie kommt es das user_email dann nicht mehr in Anführungszeichen stehen darf?
Darf es schon noch, ich habe es nur weggelassen, weil es in diesem Fall nicht erforderlich ist. Die Backticks (`) werden z.B. benötigt, wenn eine Tabelle/Spalte den gleichen Namen wie ein reserviertes Wort hat (z.B. CREATE TABLE `select`)

Verfasst: 27.12.2008 01:42
von MarcE
Verstehe. Danke.