bot or not bot: UPDATE mit Subselect oder GROUP BY oder ...

Beitrag lesen

Hallo,

ich habe in meiner mySQL-DB eine Tabelle mit User Agents und in einer anderen Tabelle Reguläre Ausdrücke, die auf Bots überprüfen. Jeder Reguläre Ausdruck ist mit einem Zusatz versehen, ob es sich dabei um einen Bot oder einen Mensch handelt.

Folgende Abfrage gibt mir alle Bots zurück:

SELECT *
FROM (
SELECT counter.id , MIN( bots.bot ) AS bot , counter.HTTP\_USER\_AGENT
FROM counter
LEFT JOIN counter\_bots AS bots ON counter.HTTP\_USER\_AGENT
REGEXP bots.regex
GROUP BY counter.id
) AS data
WHERE bot =1

Nun will ich aber die Unterscheidung zwischen Mensch und Bot in der Tabelle counter cachen.

UPDATE counter SET bot = 0|1

Nur wie bekomme ich die Daten für das UPDATE? AFAIK kann ich kein Subselect, das auf die Daten der zu ändernden Tabelle zugreift) verwenden.

TIA
bot or not bot