backbone: mysqlabfrage - bitte lesen

hi floks,

habe gearde nen kleine gedächtnis problem und wollte euch mal fragen ob ihr mir nicht auf die sprügen helfen könnt.

ich will eine mysqlabfrage starten die aus einer tabelle nicht alle datensätze ausließt sondern nur immer einen, auch wenn es mehrere der gleichen sorte gibt.

hier nen kleines bsp:

Einträge
--------
test
test
test
auto
bus
auto

nun soll die abfrage nicht den inhalt der tabelle ausgeben sondern nur test,auto,bus. wie stelle ich das an?

thx vor help

  1. hi,
    dafür gibts das
    DISTINCT
    nach dem SELECT...

    mfg
    comunicout

    --
    fütter mein ego !
    welcome to electro-smog therapy
    1. DISTINCT
      nach dem SELECT...

      habe das so gemacht:

      SELECT DISTINCT * FROM room;

      funktioniert aber trotzdem nicht.

      :(

      1. hi
        folgend ein lokaler auszug (mysql):

        mysql> select distinct spo_berufsgruppe FROM sponsor;
        +-------------------------------------+
        | spo_berufsgruppe                    |
        +-------------------------------------+
        | Einfach ein paar Buchstaben zu lang |
        | Agrarmarkt                          |
        | Musik                               |
        | Computer                            |
        +-------------------------------------+
        4 rows in set (0.04 sec)

        mysql> select spo_berufsgruppe FROM sponsor;
        +-------------------------------------+
        | spo_berufsgruppe                    |
        +-------------------------------------+
        | Einfach ein paar Buchstaben zu lang |
        | Agrarmarkt                          |
        | Musik                               |
        | Computer                            |
        | Computer                            |
        +-------------------------------------+
        5 rows in set (0.00 sec)

        ==> funktioniert !!

        mfg
        comunicout

        --
        fütter mein ego !
        welcome to electro-smog therapy
        1. okay,

          thx. hab schon gesehen wo mein fehler lag.

          tschau

      2. SELECT DISTINCT * FROM room;

        kann so nicht gehen, es muss noch die Spalte auf die das DISTINCT zielt angegeben werden.

        SELECT DISTINCT room.name FROM room

        Dann kriegste aber nur die eine Spalte. Willst Du alle Spalten, dann versuchs mal mit:

        SELECT * FROM room GROUP BY room.name

        machst Du " DISTINCT * " gibts zwar keinen Fehler aber eben alle datensätze

        Matthias

        1. Hi MAtthias

          SELECT * FROM room GROUP BY room.name

          machst Du " DISTINCT * " gibts zwar keinen Fehler aber eben alle datensätze

          Nein, blos nicht, das ist einfach nur Müll und jede vernünftige Datenbank wird dir hierfür einen Syntaxfehler ausgeben. Ausser den Spalten nach denen gruppiert wird, sind nur Aggregatsfunktionen erlaubt. Wie sollte sonst die Datenbank auch wissen, welchen der vielen möglichen Werte dieser Spalte es dir geben soll (MySQL wählt hier zufällig!).

          Richtig ist, wie comunicout sagte, nur die Felder nach DISTINCT aufzuführen, die auch gebraucht werden da DISTINCT Records unterdrückt, die in _allen_ Spalten identische Werte aufweisen.

          Gruss Daniela

          --
          Nein, wir frieren unsere Hühner nicht auf Gletschern fest.
          Selfcode: sh:) fo:) ch:) rl:) br:> n4:| ie:{ mo:) va:) de:] zu:} fl:( ss:) ls:&