Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 25

Thema: MySQL SELECT DISTINCT .... Vorfilterung?

  1. #1
    Azubi(ne) Avatar von OJMD
    Registriert seit
    13.03.2007
    Ort
    Heidelberg
    Beiträge
    63
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Frage MySQL SELECT DISTINCT .... Vorfilterung?

    Hallo zusammen,

    folgendes, ich habe eine SQL Tabelle mit vielen Datensätze. Jeder Datensatz enthält im Feld datum das Datum wann der Datensatz eingetragen wurde.

    Feld datum ist int(20) und enthält einen time() Eintrag.

    Jetzt möchte ich per „SELECT DISTINCT datum FROM“ nur die Monate aus dem Feld datum ausgeben werden.

    Bekomme ich das über SELECT Abfrage hin, oder muss ich in der Tabelle ein weiteres Feld einfügen und nur die Monate eintragen lassen um anschließend dann darüber Filtern zu können?


    Ich sage schon mal Danke Oliver
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Kaiser(in)
    Registriert seit
    29.03.2009
    Ort
    1011 1111 1011 WorldWideWeb
    Beiträge
    2.439
    Danke
    2
    Bekam 6 mal "Danke" in 6 Postings

    Standard AW: MySQL SELECT DISTINCT .... Vorfilterung?

    Falscher anstazt. Ich weiss zwar nicht genau ob es sowas wie die date-funtkion auch in MySQL gibt, ich denke aber schon.
    Lass doch einfach nach datum (bzw. deinem Timestamp) vorsortierne und pick dir den Monat per PHP raus - ist sogar performanter.
    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.
    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  3. #3
    Azubi(ne)
    Themenstarter
    Avatar von OJMD
    Registriert seit
    13.03.2007
    Ort
    Heidelberg
    Beiträge
    63
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: MySQL SELECT DISTINCT .... Vorfilterung?

    Danke Tobse,

    wenn ich hier keine Elegante Lösung erhalte werde, werde ich irgend etwas in diese Richtung programmieren.

    Grüße Oliver

  4. #4
    Unregistriert
    Gast

    Standard AW: MySQL SELECT DISTINCT .... Vorfilterung?

    Zitat Zitat von Tobse Beitrag anzeigen
    ist sogar performanter.
    Das ist Quatsch! Wieso soll ich mit PHP sortieren und Filtern, wenn ich das schon mit MySQL erledigen kann. Es wäre einfacher, wenn man in der Tabellenspalte Datum auch ein Datum speichert, also vom Type date. Dafür gibt's das nämlich

  5. #5
    Kaiser(in)
    Registriert seit
    29.03.2009
    Ort
    1011 1111 1011 WorldWideWeb
    Beiträge
    2.439
    Danke
    2
    Bekam 6 mal "Danke" in 6 Postings

    Standard AW: MySQL SELECT DISTINCT .... Vorfilterung?

    Zitat Zitat von Unregistriert Beitrag anzeigen
    Es wäre einfacher, wenn man in der Tabellenspalte Datum auch ein Datum speichert, also vom Type date. Dafür gibt's das nämlich
    So ist es aber nicht. Wenn er die MySQL DATE funktion verwendet, muss MySQL für JEDEN Datensatz, also ganz egal, ob er hinterher im resultat ersccheint, die Funktion ausführen. Wenn PHP die Funktion allerdings nur auf die relevaten anwendet, ist das natürlich performanter.
    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.
    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  6. #6
    Unregistriert
    Gast

    Standard AW: MySQL SELECT DISTINCT .... Vorfilterung?

    Und bei einem Timestamp wirst du kein Distinct sinnvoll einsetzen können. Mit anderen Worten, du musst alle Datensätze aus der DB auslesen und dann mit PHP filtern. Und das soll performanter sein? Im Leben nicht!
    Die Spalte datum von timestamp nach date konvertieren ist ja keine gigantischer Akt.

  7. #7
    Unregistriert
    Gast

    Standard AW: MySQL SELECT DISTINCT .... Vorfilterung?

    So, mein lieber Tobse! Habe gerade etwas Zeit gehabt und mal getestet:

    Select distinct month(datum) as monate from tabelle

    Da braucht phpMyAdmin bei einer Tabelle mit 500.000 Datensätzen gerade mal 0.25 Sekunden. Mach das mal mit deiner Methode.

  8. #8
    Großmeister(in)
    Registriert seit
    09.12.2008
    Ort
    Berlin
    Alter
    38
    Beiträge
    666
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: MySQL SELECT DISTINCT .... Vorfilterung?

    Für Datums-Felder nimmt man auch die Datums-Feldtypen von MySQL, dafür gibt es die. Ein INT ist eine schlechte Idee, warum zeigt sich hier mal wieder. Du brauchst im Query jedesmal eine Funktion mehr wenn du Datums-Berechnungen/-Formatierungen in der Abfrage durchführen willst. Und das ist performanter als PHP rödeln zu lassen.
    Code:
    SELECT
      DISTINCT DATE_FORMAT( FROM_UNIXTIME(`datum`), '%Y-%m')
    FROM
      `table`
    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  9. #9
    Azubi(ne)
    Themenstarter
    Avatar von OJMD
    Registriert seit
    13.03.2007
    Ort
    Heidelberg
    Beiträge
    63
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: MySQL SELECT DISTINCT .... Vorfilterung?

    Hallo zusammen,

    vielen Dank für die tolle Diskussion und Antworten!!!

    Warum ich INT Verwende, weis ich nicht genau habe das irgendwo mal übernommen. Auch hier danke für den Tipp, ich werde in Zukunft auf „Datum“ gehen.

    @SinnlosS : Genau solche Schreibweise habe ich gesucht.


    Vielen Dank euch allen, Grüsse Oliver

  10. #10
    Kaiser(in)
    Registriert seit
    29.03.2009
    Ort
    1011 1111 1011 WorldWideWeb
    Beiträge
    2.439
    Danke
    2
    Bekam 6 mal "Danke" in 6 Postings

    Standard AW: MySQL SELECT DISTINCT .... Vorfilterung?

    Zitat Zitat von Unregistriert Beitrag anzeigen
    So, mein lieber Tobse! Habe gerade etwas Zeit gehabt und mal getestet:

    Select distinct month(datum) as monate from tabelle

    Da braucht phpMyAdmin bei einer Tabelle mit 500.000 Datensätzen gerade mal 0.25 Sekunden. Mach das mal mit deiner Methode.
    Du vergisst, dass PHPMyAdmin aufgrund von darstellungsplätzen ein LIMIT 0, 30 (oder eben bezüglich der Seite) benitzt, weshalb MySQL 0,25 Sekunden für 30 Datensätze gebraucht hat.

    EDIT:
    Tabelle "timetable":
    Code:
    id, INT (5) | time, INT(11)
    ------------+---------------
    1           | 1314359916
    u.s.w. bis 35.158
    PHP-Code:
    <?php
    $db
    =new mysqli(...);
    set_time_limit(0);
    $sql="SELECT DISTINCT MONTH(time) FROM timetable";
    $time=microtime();
    if (!
    $db->query($sql)) {
        echo 
    $db->error;
        exit();
    }
    $time=microtime()-$time;
    echo 
    $time."<br>";
    $sql="SELECT DISTINCT time FROM timetable";
    $time=microtime();
    if (
    $erg=$db->query($sql)) {
        while (
    $res=$erg->fetch_array()) {
            
    $foo=date("m-Y"$res["time"]);
        }
    }
    $time=microtime()-$time;
    $erg->close();
    echo 
    $time;
    $db->close();
    ?>
    Ausgabe:
    Code:
    0.116676
    0.094987
    Geändert von Tobse (26.08.2011 um 14:55 Uhr)
    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.
    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

Ähnliche Themen

  1. Select Abfrage mit PHP und MySQL
    Von Nightskill im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 16.01.2009, 13:27
  2. MySQL Where Sub-Select ?
    Von VivaLosTioz im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 05.12.2008, 18:17
  3. [Perl] MySQL Datenbank SELECT mit DBI
    Von ::RMB:: im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 05.06.2008, 22:21
  4. mysql select - kostet unendlich zet
    Von pbwuser im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 01.11.2007, 10:57
  5. MySQL Select Ausgabe Exportieren.
    Von Barret im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 0
    Letzter Beitrag: 25.01.2007, 16:03

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •