Mike: select * from *,!feldx

Hi,

lässt sich ein Feld auch ausschliessen wenn sonst aller felder benötigt werden, also so in etwa wie der Titel der Frage? Anscheinend hat noch nie jemand sowas benötigt, denn nichts zu finden dazu.

Mike

  1. Hi,

    lässt sich ein Feld auch ausschliessen wenn sonst aller felder benötigt werden,

    es werden nicht alle oder fast alle Felder benötigt, oder Du hast mit ziemlicher Sicherheit einen schwerwiegenden Konzeptfehler im DB-Layout gemacht. Wie sieht dieses aus?

    Anscheinend hat noch nie jemand sowas benötigt, denn nichts zu finden dazu.

    Es wurde Ähnliches schon oft gefragt, immer mit dem selben Ergebnis.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi,

      es werden nicht alle oder fast alle Felder benötigt, oder Du hast mit ziemlicher Sicherheit einen schwerwiegenden Konzeptfehler im DB-Layout gemacht. Wie sieht dieses aus?

      Das mag sein, ist aber auch eher ein grundsätzliche Frage, hätte erwartet das es da ein Möglichkeit gibt. In meinem Konkreten Fall ist der Grund ziemlich einfach, obwohl du wahrscheinlich sagen wirst Bilder gehören nicht in eine DB, aber darum gehts ja nicht.

      Also eine einzige Tabelle mit 15 wichtigen Daten, dann ein Feld mit einem Thumbnail in codierter Form. Da logischerweise das Thumbnail viel Inhalt hat wollte ich das bei einer einfachen Suchabfrage weglassen, also eben select * (nur Bildfeld nicht) FROM.....

      Es macht in diesem Fall auch kein Sinn nur wegen dem Bild eine zweite Tabelle zu machen.

      »» Anscheinend hat noch nie jemand sowas benötigt, denn nichts zu finden dazu.

      Es wurde Ähnliches schon oft gefragt, immer mit dem selben Ergebnis.

      Wo? Ich habe nichts dazu gefunden.

      Mike

      1. Hi,

        Das mag sein, ist aber auch eher ein grundsätzliche Frage,

        gut: Der von Dir beschriebene Fall ist für SQL kein Use-Case und wird von der Sprache nicht abgebildet.

        »» Es wurde Ähnliches schon oft gefragt, immer mit dem selben Ergebnis.
        Wo? Ich habe nichts dazu gefunden.

        Beispielsweise in diesem Suchergebnis. Deine Fragestellung ist nicht davon abhängig, dass in einer bestimmten Spalte nicht gesucht werden soll.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Hi,

          gut: Der von Dir beschriebene Fall ist für SQL kein Use-Case und wird von der Sprache nicht abgebildet.

          na gut dann bleibt mir wohl doch nur die Möglichkeit alle gewollten Felder aufzuführen, schade.

          »» »» Es wurde Ähnliches schon oft gefragt, immer mit dem selben Ergebnis.
          »» Wo? Ich habe nichts dazu gefunden.

          Beispielsweise in diesem Suchergebnis. Deine Fragestellung ist nicht davon abhängig, dass in einer bestimmten Spalte nicht gesucht werden soll.

          Da finde ich dazu auch nichts, ausser vielleicht http://forum.de.selfhtml.org/archiv/2007/7/t155653/#m1012940 aber das klingt dirt auch nicht gerade überzeugend und der OP dort meinte das auch, glaube ich, anders.

          Danke
          Mike

          1. Hi,

            na gut dann bleibt mir wohl doch nur die Möglichkeit alle gewollten Felder aufzuführen, schade.

            ich unterstelle nach wie vor, dass Du Dein DB-Layout ändern solltest.

            Da finde ich dazu auch nichts, ausser vielleicht http://forum.de.selfhtml.org/archiv/2007/7/t155653/#m1012940 aber das klingt dirt auch nicht gerade überzeugend und der OP dort meinte das auch, glaube ich, anders.

            Der Fragesteller möchte einen Vergleich über alle Spalten durchführen. Du möchtest einen Vergleich über alle Spalten bis auf eine durchführen. Beides ist in identischer Weise und aus exakt den selben Gründen ein starkes Indiz für einen Konzeptfehler im DB-Layout.

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
            1. Hi,

              »» na gut dann bleibt mir wohl doch nur die Möglichkeit alle gewollten Felder aufzuführen, schade.

              ich unterstelle nach wie vor, dass Du Dein DB-Layout ändern solltest.

              Und warum? Nur damit ich selct * FROM resourceschonender ausführen kann?
              Aber andererseits sagst du ja hier:

              Der Fragesteller möchte einen Vergleich über alle Spalten durchführen. Du möchtest einen Vergleich über alle Spalten bis auf eine durchführen. Beides ist in identischer Weise und aus exakt den selben Gründen ein starkes Indiz für einen Konzeptfehler im DB-Layout.

              Der Fragesteller möchte einen Vergleich über alle Spalten durchführen.

              Und warum sollte das falsch sein? Und vor allem warum ist mein Gedankengang falsch, es gibt doch in jeder Programmiersprache die Möglichkeit Werte zu negieren bzw. auszuschliessen, warum nicht in SQL?

              Und ich sehe viele Scripte die es sich anscheind auch einfach machen indem sie alle Felder eben mit * abfragen auch wenn nur die Hälfte benöigt wird, und genau das wollte ich eben nicht. Aber mal aus Neugierde, du würdest also für das Bild eine extra Tabelle machen bzw, gar nicht in eine DB? Wobei ich hier nicht den Unterschied sehe, wenn man die Ausgabe nicht berücksichtigt, ob ich nun ein codiertes Bild mit 50kb habe oder einen langen Text.

              Mike

              1. Hi,

                »» ich unterstelle nach wie vor, dass Du Dein DB-Layout ändern solltest.
                Und warum? Nur damit ich selct * FROM resourceschonender ausführen kann?

                nein, weil Du unterschiedliche Spalten mit gleicher oder sehr ähnlicher Bedeutung hast.

                »» Der Fragesteller möchte einen Vergleich über alle Spalten durchführen.
                Und warum sollte das falsch sein?

                Du möchtest recherchieren, was der Begriff "Normalisierung" im Zusammenhang mit Datenbanken bedeutet, und Dich intensiv damit beschäftigen.

                Und vor allem warum ist mein Gedankengang falsch, es gibt doch in jeder Programmiersprache die Möglichkeit Werte zu negieren bzw. auszuschliessen, warum nicht in SQL?

                Mir will gerade beim besten Willen keine Programmiersprache einfallen, bei der man den Effekt von 'print' (oder wie auch immer der Befehl jeweils heißt) negieren kann. Deine Pauschalisierung scheint also nicht zu funktionieren. Negierungen funktionieren auch in SQL, etwa mit "!=" oder "NOT", natürlich nur an den Stellen, an denen es sinnvoll ist - genau wie in allen anderen Programmiersprachen. Darüber hinaus habe ich schon gesagt, dass die Negierung oder das Ausschließen einer Spalte kein relevanter Gegenstand der Betrachtung ist, da schon der Versuch, alle oder auch nur viele Spalten pauschal gleichwertig zu betrachten völlig widersinnig ist.

                Und ich sehe viele Scripte die es sich anscheind auch einfach machen indem sie alle Felder eben mit * abfragen

                Dass dieses Vorgehen ebenfalls alles andere als sinnvoll ist, wurde hier im Forum schon oft genug erläutert. Dieser Umstand hat aber mit dem Thema nicht das geringste zu tun: Zwischen "selektiere alle Spalten" und "vergleiche alle Spalten" besteht ein signifikanter Unterschied.

                Aber mal aus Neugierde, du würdest also für das Bild eine extra Tabelle machen bzw, gar nicht in eine DB?

                Ich werde Dir bestimmt nicht sagen, wie ich ein Problem lösen würde, welches ich noch nicht mal kenne. Es ist schon ungünstig genug, eine Tabelle für sich zu betrachten anstatt im Kontext aller anderen, aber Daten zu strukturieren, deren Natur noch niemand in meiner Anwesenheit ergründet hat, würde einen Grad an Omniszienz erfordern, den ich bisher noch nicht erreicht habe.

                Wobei ich hier nicht den Unterschied sehe, wenn man die Ausgabe nicht berücksichtigt, ob ich nun ein codiertes Bild mit 50kb habe oder einen langen Text.

                Das liegt vielleicht daran, dass diese Information nicht von Bedeutung ist. Es sind im Wesentlichen die anderen Daten, die vermutlich falsch strukturiert sind.

                Cheatah

                --
                X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
                X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                X-Will-Answer-Email: No
                X-Please-Search-Archive-First: Absolutely Yes
  2. Hallo,

    lässt sich ein Feld auch ausschliessen wenn sonst aller felder benötigt werden, also so in etwa wie der Titel der Frage?

    lass Dir die Abfrage mit der Programmiersprache Deiner Wahl zusammenstellen, so dass die zu vermeidende Spalte nicht in der Spaltenliste auftaucht. Wie dies geht, das hängt vom verwendeten Datenbankmanagementsystem ab.

    Sprich: eine Kurzschreibweise, wie sie Dir vorschwebt, existiert in den mir bekannten SQL-Dialekten nicht.

    Freundliche Grüße

    Vinzenz

  3. Hello,

    lässt sich ein Feld auch ausschliessen wenn sonst aller felder benötigt werden, also so in etwa wie der Titel der Frage? Anscheinend hat noch nie jemand sowas benötigt, denn nichts zu finden dazu.

    SQL mag das nicht kennen, aber das wäre durchaus eine Aufgabe für eine API bzw. Datanbankklasse. Die Spaltennamen lassen sich schließlich abfragen und aus der Liste dann einige zu löschen, sollte doch leicht möglich sein.

    Vielleicht geht sowas ja sogar mit einem Subselect?

    Liebe Grüße aus dem Cyberspace

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de