MySQL datensatz einfügen/updaten frage
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anwenden
art
bedingung
befehl
datensatz
datum
einzigen befehl
entscheiden
entsprechenden befehl
frage
funktion
garnichts
kleine frage
kriterium
set
statistik
tabelle
tun
update
url
-
heyho, ich hab mal eine dämliche frage, aber ich stell sie trotz allem. mehr als auslachen könnt ihr mich nicht^^
wenn ich einen datensatz habe in einer MySQL tabelle, und dann den zb updaten will ist ja schön, dann nutz ich update. aber wenn ich unsicher bin ob der datensatz existiert, MUSS ich dann vorher mit einer SELECT prüfen ob der datensatz existiert, um zu entscheiden obs UPDATE oder INSERT heißen muss, oder gibt es da eine performantere art und weise, das ganze vllt mit einem einzigen befehl auszuführen?
also nochmal: ich bin mir unsicher ob ein datensatz schon existiert, fals er existiert will ich ihn updaten, falsh er nicht existiert soll er geinstert werden. ich weiß dass es mit ner select zu prüfen und dann entsprechenden befehl geht, aber das klingt für mich so unperformant. gibt es eine möglichkeit dass in einem SQL befehl oder ähnlcihes auszuführen? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
ggamee schrieb:
Die meisten Fragen, die hier gestellt werden, sind dämlicher, als diese hier .
heyho, ich hab mal eine dämliche frage, aber ich stell sie trotz allem.
ggamee schrieb:
Sicher?
mehr als auslachen könnt ihr mich nicht^^
ggamee schrieb:
Das machst du so ganz richtig. Wenn es sich allerdings um mehr als einen Datensatz handelt, dann ist es ratsam, nicht alle einzeln ab zu fragen und dann sofort darauf zu reagieren, sondern zuerst alle ab zu fragen, dann alle bereits existierenden up zu daten und dann erst alle noch nicht existierenden hinzu zu fügen. Damit spart man dann Traffic, schließlich muss an einem Query nicht viel hinzu gefügt werden, um gleich mehrere Datensätze, statt nur einen ab zu fragen.
wenn ich einen datensatz habe in einer MySQL tabelle, und dann den zb updaten will ist ja schön, dann nutz ich update. aber wenn ich unsicher bin ob der datensatz existiert, MUSS ich dann vorher mit einer SELECT prüfen ob der datensatz existiert, um zu entscheiden obs UPDATE oder INSERT heißen muss, oder gibt es da eine performantere art und weise, das ganze vllt mit einem einzigen befehl auszuführen? -
ok, also so wie ich gedacht habe. hätte ja sein können dass es in den endlichen tiefen des SQL dafür eine funktion gibt^^
nun noch eine kleine frage hinterher: das soll ne counter funktion werden. da gabs irgendwas von wegen UPDATE TABLE SET counter = counter++ WHERE [BEDINGUNG] oder nich? dass ich quasi nen integer feld habe was ich schnurstraks immer um einen erhöhe.da gabs was auf das ich aber leider auch mit google nicht komme. wie war des noch? -
supi.
ja wird zeit dass ich wieder zu den anfängen komme. ich hab sonst immer mit einem selbst geschrieben datenbankformat gearbeitet, was kein SQL und garnichts nutzte, sondern komplett was eigenes war. da hätt ich das ähnlich gestalltet. aber für wordpress muss ich mich ja doch ins system einbetten.
ok, danke =) dann sollte das statistik grabber plugin wohl zu packen sein =)
vielen dank =) and have a nice day! -
MySQL verfügt auch über eine INSERT ... ON DUPLICATE KEY UPDATE Funktion. Du schreibst also einen ganz normalen Insert Befehl und falls der Wert schon existiert den du einfügen willst, schreibst du ein UPDATE dahinter. Dann sparst du dir die Abfrage vorher. Erklärt ist das alles auf der verlinkten Seite, allerdings kann ich nichst über die Geschwindigkeit sagen, würde aber vermuten, dass es schneller ist als erst alles abzufragen und dann Updates oder Inserts durchzuführen.
Beitrag zuletzt geändert: 16.1.2011 13:29:28 von tct -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage