Hallo,

Ik ben al een poosje aan het stoeien en kom er niet uit:

In mijn database staat:

min en max ingesteld op een (int) 10

artikel min max
sla 20 100
wortel 1 10
prei 50 150

Ik krijg een max getal mee van de user, bijvoorbeeld 200
Ik genereer met php een random nummer tussen 1 en 200, bijvoorbeeld 70

nu wil ik dat die alleen de rij met sla en prei uit de database haalt omdat het de enige 2 zijn waar 70 binnen de min en max vallen.

Hoe kan ik dit met een select bewerkstelligen?


Sietsko


SELECT * FROM tabel WHERE `min` >= '70' AND `max` <= '200'

Dat had ik ook al geprobeerd, maar dat werkt niet


Toch zou dat moeten werken dus ik zou nog maar eens heel goed kijken.

Wel mogen een aantal quotes weg omdat het hier om integers gaat.


SELECT * FROM tabel WHERE `min` >= 70 AND `max` <= 200
SELECT * FROM tabel WHERE min <= 70 AND max >= 70
Ik denk dat Jan de Laet het dichtst in de buurt komt alleen wat te doen als het max getal bijvoorbeeld 110 is, dan zou hij nog steeds de sla en prei eruit halen omdat het getal max groter is dan 70. Want in dat geval zou ik alleen de sla rij willen hebben.

[size=xsmall]Toevoeging op 18/04/2016 23:10:50:[/size]

Ook dit werkt niet

SELECT * FROM Tabel WHERE min <= 70 AND max <= 110

Alleen de min of max werkt prima maar als ik de AND erbij gebruikt werkt de select niet goed
Waar je waarschijnlijk naar op zoek was is:
SELECT *
FROM tabel
WHERE <random waarde> BETWEEN `min` AND `max`


min en max zijn trouwens niet zo fantastisch gekozen omdat dit gereserveerde woorden zijn...
@Sietsko,
Dan moet je de test op max getal toevoegen:


SELECT * FROM tabel WHERE `min` <= 70 AND `max` >= 70 AND `max` <= max-getal


of op Thomas' zijn manier

SELECT *
FROM tabel
WHERE <random waarde> BETWEEN `min` AND `max`
AND `max` <= max-getal
Helemaal geweldig Thomas en Jan dit was precies wat ik nodig had.
Ik heb gelijk ook de min en max aangepast omdat het gereserveerde woorden zijn.
Dank voor jullie hulp :)

Reageren