Ik wil dus een query die zorgt dat er ongeveer 10 rijen uit de database gehaald worden, waarvan als eerste gesorteerd moet worden op een veld "hits" en vervolgens de rest wat als hits 0 heeft random word weergegeven. Is dit te doen met mysql? Ik heb al van alles geprobeerd met order by etc maar het lukt niet. Iemand een suggestie
Misschien dat je even wat relevante code kunt posten? Maar kijk iig maar even naar het LIMIT-statement.
...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones
SELECT * FROM T_records WHERE title LIKE '%$_POST[search]%' AND visible = '1' ORDER BY hits DESC LIMIT 10;DeverauX schreef op zaterdag 27 mei 2006 @ 14:00:
Misschien dat je even wat relevante code kunt posten? Maar kijk iig maar even naar het LIMIT-statement.
Deze gebruik ik nu, maar dan wil ik dus zorgen dat de rest zonder hits randomized word.
[ Voor 16% gewijzigd door Verwijderd op 27-05-2006 14:02 ]
Laat eerst maar eens zien wat je geprobeerd hebt. Je bent al eerder op onze quickstart gewezen; hou je daar dan ook aan. 
Programming Beleid - De "quickstart"
Programming Beleid - De "quickstart"
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
Dingen die toch niet werken dus weinig zin om dat te posten.-NMe- schreef op zaterdag 27 mei 2006 @ 14:02:
Laat eerst maar eens zien wat je geprobeerd hebt. Je bent al eerder op onze quickstart gewezen; hou je daar dan ook aan.
Programming Beleid - De "quickstart"
je bewijst ermee dat je er mee bezig bent geweest, en veel belangrijker, wij zien waar je fout gaat, en kunnen zo feedback geven.Verwijderd schreef op zaterdag 27 mei 2006 @ 14:06:
[...]
Dingen die toch niet werken dus weinig zin om dat te posten.
zo leer je er dus van..
This message was sent on 100% recyclable electrons.
Die uitspraak bewijst maar weer dat je die quickstart niet hebt doorgenomen, want als je dat wel had gedaan, dan had je geweten waarom ook niet-werkende oplossingen relevant zijn.Verwijderd schreef op zaterdag 27 mei 2006 @ 14:06:
Dingen die toch niet werken dus weinig zin om dat te posten.
Maar goed... Ervanuitgaande dat je PHP gebruikt (lijkt er wel op):
Haal eerst de totale count van records op waarbij het aantal hits niet 0 is.
SQL:
1
| SELECT COUNT(`id`) FROM `tabel` WHERE `hits` <> 0 |
Dat aantal neemt je, en daar tel je 10 vanaf. Vervolgens kijk je of je dan op een getal hoger dan 0 uitkomt. Zo ja, dan zijn er eerst nog wat andere records met meer dan 0 hits.
PHP:
1
2
3
4
5
| $query = '(SELECT * FROM `tabel` WHERE `hits` <> 0 ORDER BY `hits` DESC LIMIT 10) UNION '; if (($getalDatJeOphaalde - 10) > 0) { $query .= '(SELECT * FROM `tabel` WHERE `hits` <> 0 ORDER BY RAND() LIMIT 10,'.($getalDatJeOphaalde - 10).') UNION '; } $query .= '(SELECT * FROM `tabel` WHERE `hits` = 0 ORDER BY RAND())'; |
Op die manier zou je resultset goed gesorteerd moeten zijn.
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
Pagina: 1