MySQL lekérdezés
Van egy táblám:
Amire a következő lekérdezést írtam:Tehát a mező1 19-esén belül szeretném megkapni a mező2 1-es mező3 4-esétől a mező2 3-as mező3 3-asáig.
De nem igazán akarja a MySQL. Mi lehet a hiba?
■ mező_1 | mező_2 | mező_3 |
---|---|---|
18 | 20 | 56 |
18 | 20 | 57 |
19 | 1 | 1 |
19 | 1 | 2 |
19 | 1 | 3 |
19 | 1 | 4 |
19 | 1 | 5 |
19 | 2 | 1 |
19 | 2 | 2 |
19 | 2 | 3 |
19 | 2 | 4 |
19 | 2 | 5 |
19 | 3 | 1 |
19 | 3 | 2 |
19 | 3 | 3 |
19 | 3 | 4 |
19 | 3 | 5 |
19 | 3 | 6 |
20 | 1 | 1 |
20 | 1 | 2 |
20 | 1 | 3 |
Amire a következő lekérdezést írtam:
SELECT *
FROM tabla
WHERE
(
(((tabla.mezo_2)>=1) AND
((tabla.mezo_3)>=4) AND
((tabla.mezo_1)=19))
AND
(((tabla.mezo_2)<=3) AND
((tabla.mezo_3)<=3) AND
((tabla.mezo_1)=19))
)
De nem igazán akarja a MySQL. Mi lehet a hiba?
Csak a megérzéseimre
((tabla.mezo_3)>=4) AND
((tabla.mezo_1)=19))
AND
(((tabla.mezo_2)<=3) AND
((tabla.mezo_3)<=3) AND
((tabla.mezo_1)=19))
A két kiemelt feltétel sohasem teljesülhet egyszerre (szerintem)
Melyik az a szám, amire
Azokat a sorokat szeretném
Csak származtatott mezővel?
mezo_1=19 and (mezo_2 >=1 and
Ez így nem jó?
(a mezo_2 körüli zárójelek csak az olvashatóság kedvéért, egyébként nem kellenek)
Talán a
Ezzel nem tudom mit akartál
Csak tréfa volt
Ha jól értem, akkor mindegyik
Nagyon frankó
Most még azon töröm a fejem, hogy hogyan lehet, ha a mezo_1 sem állandó, hanem az is egy intervallum. Például 18_20_57-20_1_2 (a fenti táblázat alapján).
Intervallum vagy számok?
Ezt konkrét számoknak vagy valóban intervallumnak (szélső értékek közti valamennyi lehetséges értékek) kell érteni? Valahogy nekem egyik sem jön össze...
De ha kicsit elgondolkodsz ezen a konkrét szám - intervallum kérdésen, akkor be fogod tudni helyettesíteni a
WHERE
feltételedbe jól. Sok sikert, remélem innen megoldod.Használd az sql fiddle-t