Hallo und Danke für Deine Antwort.
Zum einen verstehe ich nicht ganz was genau du erreichen willst; eine textliche Beschreibung wäre da hilfreich (vollst. Minimalbeispiel).
Ich suche die korrekte MySQL-Syntax um ein WENN-DANN-SONST Konstrukt zu bilden, welches in den Fällen DANN und SONST unterschiedliche SELECTs mit mehrspaltigem Ergebnis fahren kann.
Ich habe Folgendes hier im postfix funktionieren, das Ergebnis ist immer einspaltig:
query = SELECT IF ((SELECT COUNT(*) FROM mail_virtual WHERE email = '%s') > 0, (SELECT policy_greylist FROM mail_virtual WHERE email = '%s' LIMIT 1), (SELECT IF ((SELECT COUNT(*) FROM mail_virtual WHERE iscatchall = 1 AND email LIKE CONCAT('%%@','%d')) > 0, (SELECT policy_greylist FROM mail_virtual WHERE iscatchall = 1 AND email LIKE CONCAT('%%@','%d') LIMIT 1), 'policy_greylist')))
Ich brauche das auch für Amavis, dort interessieren mich aber mehrere Spalten im Resultat.
Habe ich nie mit IF oder CASE WHEN genutzt, aber die Syntax sieht bei Beispielen dann doch anders aus:
http://stackoverflow.com/questions/5951157/if-in-select-statement- choose-output-value-based-on-column-values
Ich bin inzwischen ziemlich sicher, dass die Ergebnisse eines IF nur einspaltig sein dürfen. Ich glaube aber auch, dass MySQL mächtig genug sein sollte, meinen Wunsch umsetzbar zu machen - nur fehlt mir die Idee wie.
Mit freundlichen Grüßen / Kind regards Ronny Seffner -- Ronny Seffner | Alter Viehweg 1 | 01665 Klipphausen www.seffner.de | ronny@seffner.de | +49 35245 72950 7EA62E22D9CC4F0B74DCBCEA864623A568694DB8