Michael_Althoff
22-01-2002, 10:36
Hallo,
ich habe mal wieder ein Frage an die Experten.
Ich würde gerne in einer MySQL-DB überprüfen ob ein Datensatz vorhanden ist. Dies sollte aber schnell und resourcenschonend sein. Gibt es eine schnelle Möglichkeit dies durch den MySQL-Server via EXIST oder so zu erledigen ? Die PHP-Version via affect_rows oder so dürfte wohl nicht die schnellste version sein.
Für Tips wäre ich dankbar.
Gruß
Mike
wenn du einfach nur prüfen möchtest ob ein Satz existierst, dann mach einfach nur ein select auf die DB.
Für einen Insert würde ich einen primary-Key und einfach hoffen das er Satz gespeichert wird, falls nicht, war der Datensatz bereits vorhanden.
cu
berni
Michael_Althoff
22-01-2002, 12:33
Hi Berni,
gibt es denn keine elegantere Lösung ?
Gruß
Mike
MoRtAlAn
22-01-2002, 13:05
Nicht wirklich, wie willst du es denn sonst prüfen, ob der Datensatz existiert?? Du kannst natürlich auch ne txt-Datei anlegen, um das zu prüfen, legst alle Einträge einmal in die DB und ne kurzinfo in ne Datei, aber da ist die Sache mit dem kurzen Select sinniger
gruss
Michael_Althoff
22-01-2002, 13:33
Hi again,
eleganter würde ich eine Abfrage bezeichnen,
der man einen Wert xxx im Feld yyy mitgibt, und die dann ein Ergebnis 0 oder 1 zurückgibt ob ein Datensatz mit dem Wert xxx im Feld yyy gibt.
Ich weiß nicht ob es so etwas in SQL gibt, habe es auf jeden Fall in der Doku nicht gefunden.
So was wie:
SELECT EXIST FROM db WHERE yyy = xxx
Das würde ich eleganter empfinden.
Gruß
Mike
ich weiss ja nicht was du willst, was ist das Problem wenn du machst
SELECT id FROM tab WHERE bla = bedingung ?
Kommt nix zurück ist nix da, ich meine resourcetechnisch gehts nicht besser, du kannst noch einen Index auf die Id (etc. was immer du willst) anlegen damit es noch schneller geht.
Michael_Althoff
22-01-2002, 14:20
stimmt, kommt nichts zurück, nur müßte ich dann mit
mysql_errno($conID);
nochmals abfrage was der select ergeben hat.
Na ja, sollte aber von dem Zeitaufwand nicht viel ausmachen.
Ich danke Dir für deine Unterstützung
Gruß
Mike
if (!(mysql_fetch_row($result)) { echo"nix da";}
sollte gehen.