kostenloser Webspace werbefrei: lima-city


MySQL datensatz einfügen/updaten frage

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    g****e

    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?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. ggamee schrieb:
    heyho, ich hab mal eine dämliche frage, aber ich stell sie trotz allem.
    Die meisten Fragen, die hier gestellt werden, sind dämlicher, als diese hier :wink:.

    ggamee schrieb:
    mehr als auslachen könnt ihr mich nicht^^
    Sicher? :biggrin:

    ggamee schrieb:
    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?
    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.
  4. Autor dieses Themas

    g****e

    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?
  5. Ohne die WHERE-Bedingung wendest du das, was du tust auf jeden Datensatz in der Tabelle an. Mit der WHERE-Bedingung kannst du dir Datensätze nach Kriterien heraus picken und das, was du tun willst dann nur auf diese anwenden.
  6. Autor dieses Themas

    g****e

    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!
  7. 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
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!