Hallo cottton,
SUPER!
Vielen Dank für die Tipps.
Da werde ich mich mal heranwagen
Ich dachte mir ohnehin schon, dass ich mehr Daten in die neue tabelle hwf35_users_for_delete erfassen muss, z.B. schreibe ich die zu löschenden Benutzer vorher an, und da sind ann einige dabei, die reagieren tatsächlich und bitten darum, trotz 0 Posts nicht gelöscht zu werden. Dieser Bitte komme ich natürlich nach, also muss ich im Backend des CMS eine Notiz hinterlegen, diese aus der entsprechenden Tabelle ebenfalls in die neue Tabelle einpflegen und dann das Löschen vom "Nichtvorhandensein" einer entsprechenden Notiz abhängig machen.
Also, es gibt noch einges zu tun und, vor Allem, zu lernen
Dabei sind diese Tipps hier natürlich wirklich Klasse.
Viele Grüße
Hartmut
Hallo,
ich komme irgendwie nicht weiter:
Ich habe, wie erwähnt, im Backend des CMS eine neue Kategorie für Notizen angelegt, wo ich eintrage, dass der User nicht gelöscht werden möchte
Diese Kategorie frage ich also ebenfalls ab:
INSERT INTO
hwf35_users_for_delete -- die neue tabelle
(id, username, email, registerDate, lastvisitDate, posts) -- die rehenfolge "bekannt machen"
SELECT
j.id, j.username, j.email, j.registerDate, j.lastvisitDate, k.posts, n.catid,
FROM
hwf35_users j INNER JOIN hwf35_kunena_users k ON (j.id=k.userid) AND INNER JOIN hwf35_user_notes ON (j.id=n.user_id)
WHERE
j.registerDate <= DATE_SUB(CURDATE(), INTERVAL 130 DAY)
AND
j.lastvisitDate <= DATE_SUB(CURDATE(), INTERVAL 129 DAY)
AND
k.posts<1
AND
n.catid = 66;
Alles anzeigen
Das funzt schon mal... (ist ja auch nicht so schwer gewesen, die eine Bedingung hinzuzufügen
Ich habe im Backend des CMS die Möglichkeit, eine Massenmail an Benutzer einer bestimmten Kategorie zu schicken. Hierzu, so dachte ich mir, wäre es hilfreich, eine weitere Benutzergrußße anzulegen, und den "Löschkandidaten" diese Gruppe -zumindest vorübergehend- zuzuweisen. Also habe ich eine neue Gruppe erstellt.
Nun haben ja in meiner Tabelle 'hwf35_users_for_delete' alle neue hinzugefügten Benutzer in der Spalte 'date_delete' '0000-00-00 00:00:00' stehen.
Jetzt möchte ich diesen Benutzern in der Tabelle '..._user_usergroup_map' die group_id 10 zuweisen:
Zunächst ändere ich also die group_id in der Tabelle '...users_for_delete'
Nun möchte ich group_id in der '...user_usergroup_map' für eben diese Benutzer ebenfalls aktualisieren:
UPDATE
hwf35_user_usergroup_map
SET
group_id = 10
WHERE
group_id IN (
SELECT group_id FROM hwf35_users_for_delete = '10';
)
...und das funzt nicht
Fehler: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''10'
)' at line 7
Folgendes probiert:
UPDATE hwf35_user_usergroup_mapSET group_id = 10WHERE group_id = 10 IN ( SELECT group_id FROM hwf35_users_for_delete);
Da gibt es keine Fehlermeldung, aber es wird nichts gemacht.
Ich habe auch noch einige andere Varianten durch, aber es gibt immer Fehlermeldungen oder es passiert einfach nichts.
UPDATE hwf35_user_usergroup_mapSET group_id = 10WHERE(SELECT id FROM hwf35_users_for_delete WHERE id = hwf35_user_usergroup_map.user_id AND(SELECT idFROM hwf35_users_for_delete WHERE date_delete = '0000-00-00 00:00:00' ))MySQL meldet: #1242 - Subquery returns more than 1 row
Liege ich so dermaßen daneben?
Gruß
Hartmut