Ankündigung

Einklappen
Keine Ankündigung bisher.

Leeres Datensatz ermitteln

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Leeres Datensatz ermitteln

    Hi zusammen,
    ich möchte eine Datensatz anzeigen lassen der nicht vorhanden ist.
    So habe ich in einer Tabelle 3 einträge, die mit dem wert (spalte nennt sich ID) 1,3,4 vortlaufen.
    Nun möchte ich nur die nummer 2 anzeigen lassen.

    Ich hoffe ihr könnt mir da weiter helfen
    Ja ich weiß das MySQL_ API was ich verwende veraltet ist.
    Aber ich nutze diese Version nur auf meinem Rechner.

  • #2
    Wozu soll das gut sein? Nachdem eine ID ja nicht fortlaufend sein muss ist das doch irrelevant.

    Kommentar


    • #3
      So habe ich in einer Tabelle 3 einträge, die mit dem wert (spalte nennt sich ID) 1,3,4 vortlaufen.
      Nun möchte ich nur die nummer 2 anzeigen lassen.
      Warum willst du das? Lass bitte die ID Spalte in Ruhe, die ist vermultlich dein Index?

      Das muss dich nicht stören, wenn da Lücken sind, die DB stört es ja auch nicht.
      The string "()()" is not palindrom but the String "())(" is.

      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
      PHP.de Wissenssammlung | Kein Support per PN

      Kommentar


      • #4
        PHP-Code:
        echo 2
        [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

        Kommentar


        • #5
          Nun möchte ich nur die nummer 2 anzeigen lassen.
          Was meinst Du damit? In Deinem Bsp. die mit ID 3?

          Kommentar


          • #6
            Nein, er hat Datensätze mit einem AutoIncremet-Wert. Meinetwegen 8 Datensätze mit den IDs 1 bis 8.
            Nun wird der Datensatz mit id=2 per DELETE entfernt, er hat also nur noch die IDs 1 und 3 bis 8. Jetzt möchte er wissen welche Lücken da sind. Er sucht eine Abfrage, die ihm für dieses Beispiel nur die 2 ausgibt.
            Competence-Center -> Enjoy the Informatrix
            PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

            Kommentar


            • #7
              Einen Query auf alle Datensätze, zur Sicherheit mit "ORDER BY id".

              Das Ergebnis in einer Schleife durchlaufen und schauen, wo die Differenz zwischen voriger und aktueller id > 1 ist, Ergebniss(e) in einem Array speichern.

              Kommentar


              • #8
                Also dazu gibts ja im www mehrere / viele Varianten.. Wenn man allerdings immer gleich in Foren postet, bevor man selbst mal sucht, dann findet man die natürlich auch nicht.

                https://stackoverflow.com/questions/...ering-in-mysql

                Einfach mal zB nach "mysql find gaps in index OR primary key" suchen.
                The string "()()" is not palindrom but the String "())(" is.

                Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                PHP.de Wissenssammlung | Kein Support per PN

                Kommentar


                • #9
                  Da MySQL kein FULL OUTER JOIN kennt, könnte man mit UNION einen Umweg basteln:
                  Code:
                  select id
                  from (
                    select id from tabelle
                    union
                    select id+1 from tabelle
                  ) t
                  where id not in ( select id from tabelle )
                  and id < ( select max(id)+1 from tabelle )
                  Ist natürlich nicht sehr elegant, aber hilfreich, wenn man es denn wirklich benötigt. Aber die Frage wurde bisher nicht beantwortet.
                  Competence-Center -> Enjoy the Informatrix
                  PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                  Kommentar

                  Lädt...
                  X