sql >> Database teknologi >  >> RDS >> Mysql

Sådan får du de talte værdier med en kommaseparator som en enkelt rækkeværdi

Funktionen du leder efter er GROUP_CONCAT . Se dokumentationen:

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

I dit eksempel kan du bare oprette endnu en underforespørgsel (eksempel nedenfor). Eller JOIN det på en standard måde til den oprindelige forespørgsel.

...
(
      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,
...

Bemærk kommentaren til NULL håndtering i GROUP_CONCAT . Hvis du vil vise nuller, når der ikke er nogen spillere til stede, kan du bruge COALESCE(GROUP_CONCAT(gtp.id), 0) i stedet.




  1. MySQL logiske operatorer

  2. Sådan konverteres mySQL Query til Laravel 5.4 Query Builder

  3. SQL ORDER BY klausul for begyndere

  4. Justering for standardtidszoneindstillingen på RDS