Portál AbcLinuxu, 12. května 2025 15:47

Dotaz: mysql co namiesto group_concat?

29.6.2012 14:01 adrinko | skóre: 22
mysql co namiesto group_concat?
Přečteno: 232×
Odpovědět | Admin
Ahojte mam:
SELECT e.id
 (SELECT GROUP_CONCAT(DISTINCT ef.fb_id) FROM event_friends ef WHERE ef.event_id=e.id) as total,
Blbe je, ze group_concat ma limit a rozsekne mi data, takze ich nemam vsetky korektne vratene. Co namiesto toho pouzit? Ked tam dam bez group_concat tak mysql skonci chybou Subquery returns more than 1 row

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 1× (azurIt)
okbob avatar 29.6.2012 17:11 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
Rozbalit Rozbalit vše Re: mysql co namiesto group_concat?
Odpovědět | | Sbalit | Link | Blokovat | Admin
ten limit pro GROUP_CONCAT je mozne zvednout.

Jinak subquery musi vracet vzdy jeden radek - coz resi agregacni funkce.

Jedinou alternativou pro GROUP_CONCAT je kod na strane klienta (pro MySQL)
2.7.2012 14:44 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: mysql co namiesto group_concat?
Odpovědět | | Sbalit | Link | Blokovat | Admin
A ty opravdu potřebuješ ty idčka za sebou nalepený? Nebyl by lepší prostej join? Co přesně řešíš?

Pokud je opravdu potřebuješ nalepený za sebe, tak proč nepoužiješ group by? Pak by stačilo v kódu zkontrolovat, zdali Ti nejdou dvě IDčka za sebou stejný.

SELECT e.id, GROUP_CONCAT(DISTINCT ef.fb_id) as total FROM event_friends ef LEFT JOIN event e ON (ef.event_id=e.id)

Ale vlastně to už je podobný jako nepoužít group concat. V každém případě mám podezření, že máš něco špatně v analýze a řešíš něco přes koleno.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.