group_concat sorteert niet (juist)
Hi
Mijn query blijft maar problemen geven. Omdat de query nogal groot is heb ik deze in een zip gestoken samen met de structuur. Zip bestand.
Ik wil dat de namen alfabetisch staan maar ik krijg als 1° letter e,j,f,l,y,j,d,j,l,j,w nu kan ik de sortering wel in php doen maar waarom het wiel heruitvinden?
Jan
Mijn query blijft maar problemen geven. Omdat de query nogal groot is heb ik deze in een zip gestoken samen met de structuur. Zip bestand.
Ik wil dat de namen alfabetisch staan maar ik krijg als 1° letter e,j,f,l,y,j,d,j,l,j,w nu kan ik de sortering wel in php doen maar waarom het wiel heruitvinden?
Jan
Gewijzigd op 15/09/2025 11:25:34 door Jan R
is dit spam?
Of moeten we opzoek naar allerlei missende mensen in onbekende landen?
Toevoeging op 15/09/2025 11:08:34:
En als je ordering van group_concat() niet werkt: dan kan je query wel groot zijn, maar het gaat uiteindelijk om de inhoud van het stuk tussen de haakjes van group_concat.
al met al een rare actie om dat in een niet-bestaande zip te zetten
Of moeten we opzoek naar allerlei missende mensen in onbekende landen?
Toevoeging op 15/09/2025 11:08:34:
En als je ordering van group_concat() niet werkt: dan kan je query wel groot zijn, maar het gaat uiteindelijk om de inhoud van het stuk tussen de haakjes van group_concat.
al met al een rare actie om dat in een niet-bestaande zip te zetten
Hi
Zeker geen spam.
Het bestand bestaat wel degelijk. Ik begrijp niet waarom het niet download. Het is mij 1 keer gelukt. Nu echter niet meer. Spijtig dat we hier geen bestanden kunnen posten.
Ik heb nu een link gemaakt met de link-knop en nu lijkt het wel te lukken.
Jan
Zeker geen spam.
Het bestand bestaat wel degelijk. Ik begrijp niet waarom het niet download. Het is mij 1 keer gelukt. Nu echter niet meer. Spijtig dat we hier geen bestanden kunnen posten.
Ik heb nu een link gemaakt met de link-knop en nu lijkt het wel te lukken.
Jan
Gewijzigd op 15/09/2025 11:26:46 door Jan R
Ik zie vooral een aantal subquery's die group_concat() gebruiken.
Daar zie ik geen order by in staan....
Deze namen komen dus in een willekeurige volgorde.
Zelfde geldt voor de volgende, waar je s.id samenvoegt.
En wederom bij de l2.voornaam l2.achternaam.
Overal kun je naar wens een sortering opnemen. https://dev.mysql.com/doc/refman/8.4/en/aggregate-functions.html#function_group-concat
Verder staat op regel 298 nog een verdwaalde group-by a1.Act
Je hoofdquery gebruikt geen aggregatie-functies (zover ik kan zien)
Dus group-by heeft daar niets te zoeken.
(en áls je aggregatie-functies gebruikte, dan zou de group-by alle andere (85) kolommen moeten bevatten.)
Als je die group-by inzet / misbruikt om "dubbelen" te voorkomen, dan zou je de query zelf nog eens moeten bekijken: waarom krijg je dubbelen?
En als laatste zou je DISTINCT kunnen gebruiken, direct na de eerste SELECT
Daar zie ik geen order by in staan....
Deze namen komen dus in een willekeurige volgorde.
Zelfde geldt voor de volgende, waar je s.id samenvoegt.
En wederom bij de l2.voornaam l2.achternaam.
Overal kun je naar wens een sortering opnemen. https://dev.mysql.com/doc/refman/8.4/en/aggregate-functions.html#function_group-concat
Verder staat op regel 298 nog een verdwaalde group-by a1.Act
Je hoofdquery gebruikt geen aggregatie-functies (zover ik kan zien)
Dus group-by heeft daar niets te zoeken.
(en áls je aggregatie-functies gebruikte, dan zou de group-by alle andere (85) kolommen moeten bevatten.)
Als je die group-by inzet / misbruikt om "dubbelen" te voorkomen, dan zou je de query zelf nog eens moeten bekijken: waarom krijg je dubbelen?
En als laatste zou je DISTINCT kunnen gebruiken, direct na de eerste SELECT
Hi
Toch bedankt voor het meedenken allemaal.
Ik heb wel al die gegevens nodig inclusief de union en de group_concat gegevens. Als ik order by toevoeg krijg ik een foutmelding. Zoals al vermeld.
Jan
Toch bedankt voor het meedenken allemaal.
Ik heb wel al die gegevens nodig inclusief de union en de group_concat gegevens. Als ik order by toevoeg krijg ik een foutmelding. Zoals al vermeld.
Jan
Je zei niet dat je een foutmelding had. Alleen dat er problemen optraden.
- wat is de foutmelding? (daaruit is vaak veel af te leiden)
- hoe heb je de order by er dan ingezet?
om de aangehaalde voornaam.achternaam als voorbeeld te gebruiken:
of anders
- wat is de foutmelding? (daaruit is vaak veel af te leiden)
- hoe heb je de order by er dan ingezet?
om de aangehaalde voornaam.achternaam als voorbeeld te gebruiken:
Code (php)
1
2
3
4
2
3
4
GROUP_CONCAT( CONCAT(s.voornaam, " ", s.naam)
ORDER BY s.voornaam ASC, s.naam ASC
SEPARATOR ","
)
ORDER BY s.voornaam ASC, s.naam ASC
SEPARATOR ","
)
of anders
Ik wist niet, en heb het ook nergens gevonden, dat "order by" voor separator moet staan. Gezien in uw voorbeeld. Nu sorteert het. Allen bedankt.
Als je de link volgt die ik eerder gaf naar mysql.com dan kom je op de handleiding van alle aggregatie-functies. Dan 1x klikken op de betreffende functie (ik kan niet rechtstreeks linken kennelijk) en dan staan daar voorbeelden. (incluis de order-by)




