myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

MSSQL - Nur INSERT wenn kein Treffer bei SELECT

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 29.04.10, 18:55   #1
hondocrx
Anfänger
 
Registriert seit: Sep 2008
Beiträge: 16
Bedankt: 119
hondocrx ist noch neu hier! | 0 Respekt Punkte
Standard 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
hondocrx ist offline   Mit Zitat antworten
Ungelesen 30.04.10, 19:02   #2
urga
Mitglied
 
Benutzerbild von urga
 
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 453
Bedankt: 137
urga ist noch neu hier! | 0 Respekt Punkte
Standard

je nach DB ...
bei mysql gibts z.b. : [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
__________________
entropie erfordert keine wartung
urga ist offline   Mit Zitat antworten
Ungelesen 09.05.10, 17:49   #3
januschka
Anfänger
 
Registriert seit: Jan 2010
Beiträge: 23
Bedankt: 4
januschka ist noch neu hier! | 0 Respekt Punkte
Standard

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 ?
januschka ist offline   Mit Zitat antworten
Ungelesen 28.05.10, 15:36   #4
hondocrx
Anfänger
 
Registriert seit: Sep 2008
Beiträge: 16
Bedankt: 119
hondocrx ist noch neu hier! | 0 Respekt Punkte
Standard

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
hondocrx ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:37 Uhr.


Sitemap

().