# [MYSQL] IF ELSE Abfrage mit INSERT INTO



## kartoffelmus (7. August 2012)

Hallo liebe Gemeinde,

ich habe mir aus einem Programm Variablen gezogen, diese möchte in eine MySQL-DB einpflegen. Das soll jedoch nur passieren, wenn sich eine Eigenschaft geändert hat.
Die Update-Funktion ist uninteressant, da ich frühere Änderungen auch zu einen späteren Zeitpunkt einsehen möchte. Der Plan war, falls Änderungen auftreten, eine neue Zeile in die DB zu schreiben. Bisher sieht die Abfrage so aus:


```
IF
SELECT `spalte1` FROM `table` WHERE `spalte1` != 1 AND `spalte2` = 2 THEN
INSERT INTO `table` (`spalte1`, `spalte2`) VALUES (1, 2)
ELSE 
SELECT `spalte1` FROM `table` WHERE `spalte1` != 1 AND `spalte2` != 2 THEN
INSERT INTO `table` (`spalte1`, `spalte2`) VALUES (1, 2)
END IF;
```

Ich habe auch verschiedene Schreibweisen mit phpmyadmin probiert, jedoch bislang erfolglos.

VG kartoffelmus


----------



## Yaslaw (7. August 2012)

Ist das in einer StoredProcedure?

Also entweder eine StoredProcedure oder in PHP selber ausprogrammieren. Denn soviel ich weiss, geht das mit IF so nicht im normalen SQL-Statement

Nachtrag:
Grob geschätzt und ungetestet

```
INSERT INTO
	`table` (spalte1, spalte2)
SELECT
	spalte1,
	spalte2
FROM
	(SELECT 1 AS spalte1, 2 AS spalte2) AS vars
WHERE
	NOT (spalte1, spalte2) IN (SELECT spalte1, spalte2 FROM `table`)
```


----------



## kartoffelmus (7. August 2012)

Das sollte keine StoredP werden. Ich probiere das mit AS nachher aus, sieht mir schlüssig aus.

Danke schonmal


----------

