U kunt dit doen zonder het gebruik van een PHP-functie door gebruik te maken van MySQL's group_concat-functie die precies doet wat u zoekt:
SELECT name, group_concat(`data`) FROM table GROUP BY name;
Zal een kolom retourneren met "John" en een tweede kolom met "data1,data2". U kunt dan de functie explode() van PHP in de tweede kolom gebruiken om een array te krijgen met "data1" en "data2".