Hi!
Bekommt man das mit http://dev.mysql.com/doc/refman/5.1/de/insert-select.html hin?
INSERT INTO table SELECT * FROM (SELECT anfang, ende, sonstige Daten) dummyAlias WHERE (count-Subquery) = 0
Ich krieg es nicht hin. Vielleicht hat ja jemand anders eine gut Idee..
Aber wie gestaltet man das Insert, wenn eben _kein_ Datensatz in den Filterbereich fällt, also count(*) = 0 ist.
Wenn COUNT(*) = 0 zutrifft, dann ist die Bedingung erfüllt und das Subselect im FROM liefert seine Daten, die den neu einzufügenden Datensatz darstellen, an das INSERT. Wenn COUNT(*) = 0 nicht passt, gibt das außere SELECT eine leere Menge zurück => es wird nichts eingefügt.
INSERT INTO zahl SELECT * FROM (SELECT null, 42) dummyAlias WHERE (SELECT COUNT(*) FROM zahl WHERE nummer = 42) = 0
Man kann es auch ausführlicher schreiben, damit die Gemengelage der beiden ersten SELECTS klarer wird:
INSERT INTO zahl (id, nummer)
SELECT id, nummer
FROM
(SELECT null AS id, 42 AS nummer) AS dummyAlias
WHERE
(SELECT COUNT(*) FROM zahl WHERE nummer = 42) = 0
Lo!