sql >> Databasteknik >  >> RDS >> Mysql

Hur man får de räknade värdena med ett kommatecken som ett enstaka radvärde

Funktionen du letar efter är GROUP_CONCAT . Se dokumentationen:

http://dev.mysql .com/doc/refman/5.7/en/group-by-functions.html#function_group-concat

I ditt exempel kan du bara skapa ytterligare en underfråga (exempel nedan). Eller JOIN det på ett standardsätt till den ursprungliga frågan.

...
(
      SELECT GROUP_CONCAT(gtp.id)
          FROM game_table_players gtp
          LEFT JOIN game_rounds gr ON gr.id = gtp.game_round_id
      WHERE gt.id = gtp.game_table_id
          AND gtp.quit<>1 AND gr.finish=0
) AS players,
...

Notera kommentaren om NULL hantering i GROUP_CONCAT . Om du vill visa nollor när det inte finns några spelare närvarande, kanske du vill använda COALESCE(GROUP_CONCAT(gtp.id), 0) istället.




  1. Hur man aktiverar TimescaleDB på en befintlig PostgreSQL-databas

  2. Hur får jag PHP och MySQL att fungera på IIS 7.0?

  3. Lagring av långa binära (rådata) strängar

  4. PHP MySQL PDO:hur man bevarar inledande nollor i int-kolumner med nollfyllning