Potresti usare GROUP_CONCAT
:
SELECT GROUP_CONCAT(`id`), `domain` FROM `gsort_linkdata` GROUP BY `domain`
(Fai attenzione a group_concat_max_len .)
Ma poiché non c'è modo di passare un array da MySQL a PHP, è necessario dividere la stringa risultante in PHP o JS, quindi penso che il tuo metodo attuale sia quello migliore. Il tuo metodo è sicuro e in realtà solo una riga in PHP, qualsiasi altra cosa (incluso GROUP_CONCAT) è più complicata.