Wie verwende ich mehrere Between in einer Abfrage ?

Wie verwende ich mehrere Between in einer Abfrage ?

am 10.02.2006 17:34:35 von majjo2k1

Hallo,

ich stehe hier vor einem kleinen Problem.
Und zwar habe ich hier einen Newsletter erstellt bei dem man neben dem
Status der Empfänger auch die Altersgruppen auswählen können muss/soll.

$abfrage = mysql_query("SELECT username FROM benutzer WHERE aktiviert=1
AND gebjahr BETWEEN ".$ende." AND ".$start);

So funktioniert es ja einwandfrei. Doch wie Kombiniert man da mehrere
Gruppen ?
Der Versender wählt die Altergruppen in einer multiple Select-Box aus.
Dort steht z.B. 1 - 16, 17 - 18, 19 - 21 etc.
Ich habs mal mit nem erneut angehangenen Between probiert, aber das will
er nicht.

In der MySQL Doku hab ich dazu leider auch nichts finden können.

Wäre klasse wenn mir da jemand nen heissen Tip geben könnte ;)


Gruß

Mario

Re: Wie verwende ich mehrere Between in einer Abfrage ?

am 10.02.2006 17:40:28 von Nico Haase

Heidiho,
*Mario Lüsse* schrub:
> $abfrage = mysql_query("SELECT username FROM benutzer WHERE aktiviert=1
> AND gebjahr BETWEEN ".$ende." AND ".$start);
>
> So funktioniert es ja einwandfrei. Doch wie Kombiniert man da mehrere
> Gruppen ?
> Der Versender wählt die Altergruppen in einer multiple Select-Box aus.
> Dort steht z.B. 1 - 16, 17 - 18, 19 - 21 etc.
> Ich habs mal mit nem erneut angehangenen Between probiert, aber das will
> er nicht.

a) Was will wer nicht? Wenn du den Server meinst: Gibts ne
Fehlermeldung?
b) Kannst du mal den kompletten Query schicken, der den Fehler
verursacht? Daran könnte man sehen, auf welche Weise du versuchst,
"mehrere Between" zu kombinieren.
mfg
Nico

--
www.buchtips.net - Rezensionen online

Re: Wie verwende ich mehrere Between in einer Abfrage ?

am 10.02.2006 17:41:33 von majjo2k1

Ich hab das Problem doch lösen können.

Die folgenden BETWEEN`s nicht mit AND sondern mit OR anhängen.


Naja, vielleicht hilft dieser Beitrag mal nem anderen ;)


Gruß

Mario

Re: Wie verwende ich mehrere Between in einer Abfrage ?

am 12.02.2006 04:36:26 von Demy

Moin,

ich habe noch nie mit BETWEEN gearbeitet... würde es so machen:

$abfrage =3D mysql_query("SELECT username FROM benutzer WHERE aktiviert =3D
'1' AND (gebjahr < '$ende' AND gebjahr > '$start') OR (gebjahr <
'$ende2' AND gebjahr > '$start2'));

Vielleicht klappts ja auch so mit between - wie gesagt hab ich keine
ahnung von.

Demy

Re: Wie verwende ich mehrere Between in einer Abfrage ?

am 12.02.2006 14:37:04 von Nico Haase

Heidiho,
*Demy* schrub:
> ich habe noch nie mit BETWEEN gearbeitet... würde es so machen:
>
> $abfrage = mysql_query("SELECT username FROM benutzer WHERE aktiviert =
> '1' AND (gebjahr < '$ende' AND gebjahr > '$start') OR (gebjahr <
> '$ende2' AND gebjahr > '$start2'));

Och, genau sowas macht BETWEEN ja intern auch, allerdings halt rein
optisch etwas schöner ;) Aus "gebjahr < ende and gebjahr > start"
würde dann eben "gebjahr between start and ende" werden ;) Gibts von
der Performance her eigentlich auch Vorteile?
mfg
Nico

--
www.buchtips.net - Rezensionen online

Re: Wie verwende ich mehrere Between in einer Abfrage ?

am 12.02.2006 21:18:33 von Joachim Zobel

On Sun, 12 Feb 2006 13:37:04 +0000, Nico Haase wrote:

> Och, genau sowas macht BETWEEN ja intern auch, allerdings halt rein
> optisch etwas schöner ;) Aus "gebjahr < ende and gebjahr > start" würde
> dann eben "gebjahr between start and ende" werden ;)

Falsch. <= und >= wären richtig.

> Gibts von der
> Performance her eigentlich auch Vorteile? mfg

Kein Unterschied.

Gruß,
Joachim

--
Warnung: \" kann Augenkrebs verursachen.