MySQL union kérdés/probléma

Kezdőlap Fórumok Programozás MySQL union kérdés/probléma

3 bejegyzés megtekintése - 1-3 / 3
  • Szerző
    Bejegyzés
  • #2146311
    Leslieman
    Felhasználó

      Valószínűleg azért nem működik, mert hiába rendezed be a listát, az UNION miatt a végén mégsem lesz az a sorrend, ugyanis az UNION „elrontja”.
      Én inkább valami ilyesmivel próbálkoztam volna, ha nincs túl sok oszlop a táblában:

      Code:
      SELECT
      CASE 1 WHEN id = 7 THEN 0 ELSE 1 END AS rendezo, caption
      mezo1, mezo2, mezo3, mezo4 FROM ‘media’ ORDER BY rendezo, caption ASC

      A mezo1, mezo2… stb.-ket csak mintaként írtam, persze be kell helyettesítened a saját táblád mezőit ezek helyére.
      Nem próbáltam ki, de szerintem működne.

      A MySQL kézikönyv viszont ezt írja (és milyen okosan 1.gif  ):

      Code:
      (SELECT 1 AS sort_col, col1a, col1b, … FROM t1)
      UNION
      (SELECT 2, col2a, col2b, … FROM t2) ORDER BY sort_col, col1a;
      #2146312
      Leslieman
      Felhasználó

        Valószínűleg azért nem működik, mert hiába rendezed be a listát, az UNION miatt a végén mégsem lesz az a sorrend, ugyanis az UNION „elrontja”.
        Én inkább valami ilyesmivel próbálkoztam volna, ha nincs túl sok oszlop a táblában:

        Code:
        SELECT
        CASE 1 WHEN id = 7 THEN 0 ELSE 1 END AS rendezo, caption
        mezo1, mezo2, mezo3, mezo4 FROM ‘media’ ORDER BY rendezo, caption ASC

        A mezo1, mezo2… stb.-ket csak mintaként írtam, persze be kell helyettesítened a saját táblád mezőit ezek helyére.
        Nem próbáltam ki, de szerintem működne.

        A MySQL kézikönyv viszont ezt írja (és milyen okosan 1.gif  ):

        Code:
        (SELECT 1 AS sort_col, col1a, col1b, … FROM t1)
        UNION
        (SELECT 2, col2a, col2b, … FROM t2) ORDER BY sort_col, col1a;
        #1887615
        csaba
        Felhasználó

          Hali!

          Van egy táblám, aminek a tartalmát szeretném ABC sorrendbe kiiratni, de úgy, hogy a 7-es ID-jű row legyen az első és minden más után ABC sorrendben. Így próbálkoztam:

          Code:
          ( SELECT * FROM `media` WHERE id = 7 ) UNION ( SELECT * FROM `media` WHERE id != 7 ORDER BY caption ASC)

          Annyir nem működik. ID alapján adja ki a táblákat. Mit kéne tennem?

        3 bejegyzés megtekintése - 1-3 / 3
        • Be kell jelentkezni a hozzászóláshoz.