[MySQL 4.1] GROUP_CONCAT max len?

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

  • [MySQL 4.1] GROUP_CONCAT max len?

    Hoihoi,

    arbeite gerade an einer Komprimierung meiner Statistik-Datenbank.

    Ich habe eine Tabelle, in der Pro Click ein Eintrag erzeugt wird (momentan irgendwas um die 1,6Mil - pro Tag in etwa 40k die dazu kommen). Hab mir mal 30.000 Datensätze zum Test rausgeholt.
    Ich mach nun einen Select, der mir Pro Tag, pro Seite die Anzahl der Clicks wiedergibt. Alles kein Problem - damit wird dann auch die neue Tabelle gefüttert.

    Code:
    SELECT bla, DATE_FORMAT(r_date, '...') AS datum , count(bla)
     FROM blub GROUP BY datum
    Nun möchte ich natürlich die Datensätze die ich "übernommen" habe auch in der "großen" Statistik-Tabelle löschen - dazu brauch ich natürlich die IDs der vorher selecteten und zum count herangezogenen Datensätze. Also hab ich GROUP_CONCAT rausgeholt und in die Query mit eingebaut.


    Code:
    SELECT bla, DATE_FORMATr_date, '...') AS datum , 
    count(bla), GROUP_CONCAT(stat_id SEPARATOR ', ') AS ids_to_del 
    FROM blub GROUP BY datum
    Heile Welt! Funktioniert. Bis mir auffiel das bei den den Einträgen die bsp. 7000Clicks haben, irgendwie nur ca 100 Ids im Group Concat stehn. Die IDs sind 7-Stellig.

    Ein Beispiel URLID 380 hat 7203 Clicks für den 6.6.2005. Die Query hier bringt die richtige Anzahl Clicks, aber nur 114 IDs zum vorschein.

    Als erstes dachte ich an GROUP_CONCAT_MAX_LEN - nur diesen Parameter kann ich setzen wie ich will, es passiert nichts....
    Welche Wert hat das Ding denn defaultmäßig? Bekomm ich überhaupt so viele Daten in das Ergebniss von GROUP_CONCAT? Muss ich doch pro URLID ne eigene Query für die IDs machen?

    Für Irgendwelche Tipps und Ideen, vielleicht sogar Antworten, wäre ich dankbar.

    thnx.


    PS: mysql: 4.1.12 - falls das wichtig ist...

  • #2
    Kann es sein, das nur 1024 Zeichen standartmässig da rein gehen?


    114 Ids sind drin, jede ID hat 7Zeichen, getrennt durch ", ". also:
    (7+2)*114-2 = 1024
    (-2) für das letzte ", "


    Ok, dann frage ich mich nun ernsthaft warum das setzen des Limits nicht funktioniert.

    I'll try...

    Kommentar


    • #3
      So, Problem gelöst.

      Man darf die Variable nicht zusammen mit der Query setzen.

      Also NICH!
      PHP-Code:
        mysql_query("SET SESSION group_concat_max_len= 204800;".
                  
      "SELECT bla;"); 
      Sonderm
      PHP-Code:
      mysql_query("SET SESSION group_concat_max_len= 204800;");
      mysql_query("SELECT bla;"); 

      Kommentar

      Lädt...
      X