Sziasztok!
Segítséget kérek!
Van egy lekérdezésem:
SELECT o.id, o.username, o.name, o.avatar_url
FROM felhasznalok AS o
WHERE profile_statusz LIKE '%0%'
AND block='0'
AND o.group_id='2'
ORDER BY o.avatar_url LIMIT 0, 3600
Azt szeretném, hogy o.name szerint rendezze az eredményt, de vegye előre azokat akiknek az o.avatar_url mezőjében van valami. Ezen belül is o.name alapján rendezzen. GROUP BY nem jó, mert akinek üres az avatar mezője azokat összevonja.
- 5381 megtekintés
Hozzászólások
ORDER BY o.name ASC, o.avatar_url DESC LIMIT 0, 3600
- A hozzászóláshoz be kell jelentkezni
ORDER BY avatar_url DESC, o.name ASC
ez így majdnem jó, de az avatar_url- lel rendelkezőket előre veszi de azon belül is az o.name mező alapján kéne sorba raknia, mert így most nem a név alapján teszi..
- A hozzászóláshoz be kell jelentkezni
ez csak egy támpont volt, ami alapján már lazán meg lehet csinálni:)
- A hozzászóláshoz be kell jelentkezni
aki tudja annak laza :)
- A hozzászóláshoz be kell jelentkezni
akkor úgy mondom hogy másfél perc google és két perc legózás. A támpontot megadom örömmel, viszont gondolkodni nem szeretek más helyett :)
- A hozzászóláshoz be kell jelentkezni
order by isnull(o.avatar_url), o.name
----------------------
"ONE OF THESE DAYS I'M GOING TO CUT YOU INTO LITTLE PIECES!!!$E$%#$#%^*^"
--> YouTube csatornám
- A hozzászóláshoz be kell jelentkezni
+1
DE:
ha a "van valami" ellentéte nem a null, hanem az üres string, akkor az isnull nem elég, mert isnull('') az 0. + order by url != '' DESC kell, hogy az 1esek elől legyenek, ne fordítva.
- A hozzászóláshoz be kell jelentkezni
A "valami" ellentéte a kettő együtt (NULL tartalmú mezők és az üres stringet tartalmazó mezők) - esélyes ugyanis (Murphy meg a trehány kóder) az, hogy a mező tartalmát törölni üres string beírásával oldják meg, nem pedig NULL-ra billentéssel.
- A hozzászóláshoz be kell jelentkezni
ez így?
ORDER BY CASE WHEN avatar_url<'0' THEN o.name END ASC, o.name ASC"
- A hozzászóláshoz be kell jelentkezni
Kicsit offtopic, de
AND o.group_id = '2'
helyett inkább
AND o.group_id = 2
ha a group_id int. Ugyanez vonatkozik a block mezőre is. Így elvileg nem tudja használni az indexet (vagy valami ilyesmi).
-----------
"640GB sokmindenre elég"
- A hozzászóláshoz be kell jelentkezni