Random & Limit
Goedenavond,
Ik vroeg mij af of het mogelijk was om via een query een random en een limit in te stellen.
Ik heb een tabel (plaatjes), in deze tabel staan 10 plaatjes. Maar nu wil ik via een query er random 6 stuks uithalen.
Is dit mogelijk?
Edit:
Mysql (helaas) ;)
Ik vroeg mij af of het mogelijk was om via een query een random en een limit in te stellen.
Ik heb een tabel (plaatjes), in deze tabel staan 10 plaatjes. Maar nu wil ik via een query er random 6 stuks uithalen.
Is dit mogelijk?
Edit:
Mysql (helaas) ;)
Gesponsorde koppelingen:
SELECT * FROM xyz ORDER BY RAND() LIMIT 6
Aha, dus doordat je ze eerst sorteert op random. En dan pas een limit instelt, lukt het!?
Bedankt!
Bedankt!
Hoe wil je het anders doen dan?
LIMIT komt altijd als laatste...
LIMIT komt altijd als laatste...
Via php, maar dat vond ik overdreven! :D
Hoe kan het dat dit wel werkt:
En dit niet:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$sql = "SELECT id,question,counter,status
FROM poll_question
ORDER BY RAND()
LIMIT 1
";
?>
$sql = "SELECT id,question,counter,status
FROM poll_question
ORDER BY RAND()
LIMIT 1
";
?>
En dit niet:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
$sql = "SELECT id,question,counter,status
FROM poll_question
WHERE status = 1
ORDER BY RAND()
LIMIT 1
";
?>
$sql = "SELECT id,question,counter,status
FROM poll_question
WHERE status = 1
ORDER BY RAND()
LIMIT 1
";
?>
Gewijzigd op 01/01/1970 01:00:00 door The Ultimate
AND status = 1
moet dat niet
WHERE status = 1
zijn?
moet dat niet
WHERE status = 1
zijn?
Ja dat moet where status=1 zijn
@ Santhe en Arjan:
Ja dat moet inderdaad WHERE zijn, maar helaas: het werkt niet. Kennelijk kun je geen extra condities verbinden.....
Iemand een oplossing?
Ja dat moet inderdaad WHERE zijn, maar helaas: het werkt niet. Kennelijk kun je geen extra condities verbinden.....
Iemand een oplossing?
Welke foutmelding krijg je? Die query lijkt mij gewoon in orde...
hallo
en dit werkt dit niet
en dit werkt dit niet
Hoeveel records zullen er zijn waar het id de waarde 1 heeft?
Ik verwacht je slechts 1 record hebt die aan de voorwaarden voldoet, je kunt dan linksom of rechtsom gaan sorteren, maar daar zul je verdraaid weinig variabele in zien... Ga jij de waarde 1 maar eens sorteren!
Dit is in feite al overbodig, wanneer je op id gaat zoeken kun je in bovenstaade queries maar 1 resultaat krijgen. De LIMIT kun je dan gewoon weglaten, evenals de ORDER BY die volkomen overbodig is.
Quote:
Gelukkig heb ik m'n glazen bol een update gegeven en zie ik er weer wat in. Zonder zo'n bolletje zou het toch maar raden zijn wat er nu fout gaat, het is wel een bijzonder duidelijke omschrijving van het probleem.dit werkt dit niet
@pgFrank: Arjan heeft het over id = 1. Maar Bart (TS) heeft het over status = 1
@SanThe: Ik weet het, het is voor een hoop mensen dan ook zaak om heel goed de SQL in de gaten te houden en te kijken of ze wel die informatie opvragen die ze nodig hebben.
ORDER BY RAND()
LIMIT 6
werkt uitstekend, ook al zijn er mensen die daar anders over denken.
ORDER BY RAND()
LIMIT 6
werkt uitstekend, ook al zijn er mensen die daar anders over denken.
@pgFrank:
ORDER BY RAND()
LIMIT 6
werkt ongetwijfeld heel erg goed. Het gaat mij echter om het volgende:
Ik heb een database met daarin poll-vragen. Op een pagina dient 1 poll (random) te worden getoond. Er zijn polls die zichtbaar zijn (status = 1), onzichtbaar (status = 2) en zo nog een aantal opties. Zoals je zult begrijpen wil ik 1 random poll laten zien waarvan de status 1 (zichtbaar) is.
Dit lukt dus niet.....
Wil jij nog een keer in je glazen bol kijken aub? =)
ORDER BY RAND()
LIMIT 6
werkt ongetwijfeld heel erg goed. Het gaat mij echter om het volgende:
Ik heb een database met daarin poll-vragen. Op een pagina dient 1 poll (random) te worden getoond. Er zijn polls die zichtbaar zijn (status = 1), onzichtbaar (status = 2) en zo nog een aantal opties. Zoals je zult begrijpen wil ik 1 random poll laten zien waarvan de status 1 (zichtbaar) is.
Dit lukt dus niet.....
Wil jij nog een keer in je glazen bol kijken aub? =)
Status is een door MySQL gereserveerd keyword.
aaaaah, zou dat het zijn.....
en 'read' ook huh? Die had ik gister namelijk al te pakken.
Ik ga het snel proberen en ben zo terug met het antwoord....!!
EDIT:
@Arjan Kapteijn:
Het kan best zijn wat jij zegt, maar daar heeft het dus niets mee te maken. Na 'status' te hebben gewijzigd in 'visibility' krijg ik nog steeds die vervelende foutmelding:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
en 'read' ook huh? Die had ik gister namelijk al te pakken.
Ik ga het snel proberen en ben zo terug met het antwoord....!!
EDIT:
@Arjan Kapteijn:
Het kan best zijn wat jij zegt, maar daar heeft het dus niets mee te maken. Na 'status' te hebben gewijzigd in 'visibility' krijg ik nog steeds die vervelende foutmelding:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
Gewijzigd op 01/01/1970 01:00:00 door The Ultimate
Arjan Kapteijn schreef op 22.01.2009 15:35:
Niet volgens de handleiding en ik heb daar ook nog nooit problemen mee gehad.Status is een door MySQL gereserveerd keyword.
Mocht status wel een gereserveerd woord zijn, had je daar al lang een foutmelding op gehad. En die zie ik hier nergens, dus mag je aannemen dat status geen gereserveerd woord is. Of doet niemand iets aan foutafhandeling??
Edit: url naar de gereserveerde woorden toegevoegd.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
Bart schreef op 22.01.2009 15:37:
Echo je query en ziet in één keer wat er fout gaat. Ik vermoed dat ergens een deel van je SQL ontbreekt.You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
status is geen gereserveerd woord, dan kan het probleem dus niet zijn geweest.
Geen gereserveerd woord, wel een functie o.i.d. Hoe dan ook, status als kolomnaam gaat niet werken tenzij je gaat lopen kloten met quotes en backticks en andere meuk.
Arjan Kapteijn schreef op 22.01.2009 15:54:
Onzin, zie de handleiding.Geen gereserveerd woord, wel een functie o.i.d. Hoe dan ook, status als kolomnaam gaat niet werken tenzij je gaat lopen kloten met quotes en backticks en andere meuk.



