Benutzerdefinierte Suche

MySQL union select

  1. BadHorsie

    BadHorsie Thread StarterMacUser Mitglied

    Mitglied seit:
    21.04.2004
    Beiträge:
    335
    Zustimmungen:
    0
    Ich habe mehrere Tabellen die News enthalten. Diese sind mit einem Zeitstempel versehen. Um nun die 8 neuesten News zu erhalten nehme ich folgendes Query:

    PHP:
    $query  'SELECT id, date, title, teaser, "verein" as table_id FROM news_verein ';
    $query .= 'UNION SELECT id, date, title, teaser, "spiele" as table_id FROM news_spiele ';
    $query .= 'UNION SELECT id, date, title, teaser, "teams" as table_id FROM news_teams ';
    $query .= 'WHERE status="online" ORDER BY date DESC LIMIT 8';
    Leider funktioniert der UNION Befehl erst seit MySQL >= 4.0. Beim aktuellen Provider läuft aber MySQL v3.2 irgendwas. Gibt es hier eine Alternative zum UNION Befehl, oder muß ich tatsächlich aus jeder Tabelle nie 8 neuesten News extrahieren, in ein Array packen und daraus wieder die 8 neuesten extrahieren?

    Bin für schnelle Hilfe dankbar, da Zeitdruck!
    BadHorsie
     
    BadHorsie, 10.03.2005
  2. wegus

    wegusMacUser Mitglied

    Mitglied seit:
    13.09.2004
    Beiträge:
    14.982
    Zustimmungen:
    1.545
    Also auf den ersten Blick:

    unglückliches DB-Design! Besser wäre doch eine Tabelle news mit einer Spalte kategorie=verein,teams,spiele ! Schließlich ist die Grundstruktur ja offenbar bei allen Tabellen gleich! Ich kann mir auch vorstellen das das etwas performanter ist, als dieser UNION-Operator!
     
    wegus, 10.03.2005
  3. BadHorsie

    BadHorsie Thread StarterMacUser Mitglied

    Mitglied seit:
    21.04.2004
    Beiträge:
    335
    Zustimmungen:
    0
    Mit der Antwort habe ich schon gerechnet. Verdammt. Ist ziemlich viel Arbeit das ganze wieder umzubauen. Und zeitlich hänge ich drastig hinterher.

    Aber danke für die schnelle Antwort
    BadHorsie
     
    BadHorsie, 10.03.2005
  4. wegus

    wegusMacUser Mitglied

    Mitglied seit:
    13.09.2004
    Beiträge:
    14.982
    Zustimmungen:
    1.545
    @BadHorise: I know, nur so entsteht so etwas ;) Sieht bei mir manchmal ähnlich aus. Irgendwann ist dann der Tag wo sich aufräumen lohnt. Du kannst doch betsimmt alle Zeilen mit select into in eine neue Tabelle inklusiv Kategorie-Spalte schreiben. Das geht doch sogar on the fly - vorausgesetzt MySQL 3.2 beherscht select into!

    Ach: wenn es wirklich nur 3-5 Tabellen sind, behelf Dir doch zunächst mit einer 3-5fachen Abfrage per PHP-Stringmanipulation ja uach nicht schwer. Dann macht halt PHP den "UNION" auf die Ergebnisliste!
     
    wegus, 10.03.2005
  5. BadHorsie

    BadHorsie Thread StarterMacUser Mitglied

    Mitglied seit:
    21.04.2004
    Beiträge:
    335
    Zustimmungen:
    0
    Hm,

    habe schon angefangen alles auf eine Tabelle umzubauen! Es sind nur 3 Tabellen. Sollte in 1-2 Stunden erledigt sein.

    Danke
    BadHorsie
     
    BadHorsie, 10.03.2005
Die Seite wird geladen...
Ähnliche Themen - MySQL union select
  1. malah
    Antworten:
    3
    Aufrufe:
    1.165
    beatles
    10.02.2017
  2. beatles
    Antworten:
    4
    Aufrufe:
    445
  3. Hausbesetzer
    Antworten:
    7
    Aufrufe:
    976
    Deine Mudda
    27.04.2016
  4. xenon96
    Antworten:
    2
    Aufrufe:
    584
    xenon96
    27.06.2015
  5. emmmmmi
    Antworten:
    4
    Aufrufe:
    1.344
    emmmmmi
    19.09.2012