myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   MSSQL - Nur INSERT wenn kein Treffer bei SELECT (https://mygully.com/showthread.php?t=2035314)

hondocrx 29.04.10 18:55

MSSQL - Nur INSERT wenn kein Treffer bei SELECT
 
Hallo!

Ich würde gern folgende Abfrage realisieren (So stell ich mir nur den Ablauf der Abfrage vor)
Code:

SELECT nummer FROM db.test WHERE (name = "testname) AND (nachname = "testnachname)

if COUNT(nummer)=0 THEN INSERT INTO db.test (name,nachname,adresse) VALUES ("testname","testnachmane","TEstadresse")

Kurz zusammengefasst: Ist der Name nicht vorhanden soll er angelegt werden, So will ich Dubletten vermeiden.

Es interessiert mich aber auch grundlegend ob man mit einer If THEN - Anweisung in einr SQL-Abfrage arbeiten kann.


MfG und schon mal Danke im Vorraus

hondocrx

urga 30.04.10 19:02

je nach DB ...
bei mysql gibts z.b. : [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

januschka 09.05.10 17:49

Ich würde es so realisieren:

In reinem Sql:

Code:

INSERT INTO db.test (name,nachname,adresse) VALUES ("testname","testnachmane","TEstadresse")
WHERE
name NOT (SELECT name FROM db.test WHERE name  = 'testname')
and
nachname NOT (SELECT nachname FROM db.test WHERE nachname = 'testnachname')

ist ungtestet müßte aber funktionieren.

Mit Sql und PHP

PHP-Code:

$sql "SELECT name FROM db.test WHERE name = '$testname' AND nachname = '$testnachname'";
$result mysql_query($sql);
$anzahl mysql_num_rows($result);
If(
$anzahl === 0){
mysql_query('INSERT INTO db.test (name,nachname,adresse) VALUES ("testname","testnachmane","TEstadresse") ');


klappt auf alle fälle.

Noch ein Frage: Hast du in der Tabelle keine Spalte für laufender ID mit autoincrement ?

hondocrx 28.05.10 15:36

Hallo Januschka

Danke für den Tip.

Hab nun alle Eintrage eingelesen und DANACH die Dubletten gelöscht. War einfacher zu realisieren da mir die Zeit weggelaufen war.

mfG hondocrx


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:43 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.