Abfrageproblem mysql

Abfrageproblem mysql

am 08.12.2004 21:46:51 von Werner Laude

Hallo NG..

Ich benötige Unterstützung bei der Lösung eines mysql Abfageproblem=
s.
In einem Formular sind mehrere Checkboxen, die jeweils den Wert 0 oder 1 =

in jeweils eine Spalte einer Tabelle schreiben. abgehakt=3D1
Diese Werte werden in eine Tabelle geschrieben.

z.B.

kat1 hat dann Wert 1
kat2 wert 0
kat3 wert 1
etc.

Die Tabelle hat dann noch andere Spalten (Strasse, Ort etc.)

Der Benutzer kann beliebig Checkboxen anklicken oder auch nicht. Ich=20
möchte erreichen, das alle Datensätze angezeigt werden, in der die=20
Spalten kat1 bis...kat sowieso... eine 1 als Wert haben.

Wie kann ich da am Besten rangehen ?
Normalisieren, aber wie.. Set und Enum ?


Gruß und danke für sachdienliches..
Werner

--=20
WebAgentur | Werner Laude

Schreberstr. 9 | 51105 Köln

fon 0221.8805 635
fax auf Anfrage

------------------------------------------

http://www.laude.biz

Re: Abfrageproblem mysql

am 09.12.2004 11:23:06 von Johannes Vogel

Hi Werner

Werner Laude wrote:
> Ich benötige Unterstützung bei der Lösung eines mysql Abfageproblems.
> In einem Formular sind mehrere Checkboxen, die jeweils den Wert 0 oder 1
> in jeweils eine Spalte einer Tabelle schreiben. abgehakt=1
> Diese Werte werden in eine Tabelle geschrieben.
> Die Tabelle hat dann noch andere Spalten (Strasse, Ort etc.)
> Der Benutzer kann beliebig Checkboxen anklicken oder auch nicht. Ich
> möchte erreichen, das alle Datensätze angezeigt werden, in der die
> Spalten kat1 bis...kat sowieso... eine 1 als Wert haben.
> Wie kann ich da am Besten rangehen ?
> Normalisieren, aber wie.. Set und Enum ?

Falls es sich um viele Felder handelt, könntest du sie auch binär
kodieren. Dann kannst du einfach per:

where (kat & (64+32+8)) > 1

alle abfragen, welche das 4., 6. und 7. bit eingeschaltet haben.
Das ist auch ganz schön handzuhaben betreffend Felderanzahl und Indizes.
Weniger schön: Es ist nicht sofort ersichtlich, welche Stelle, welche
Bedeutung hat.

HTH, Johannes

Re: Abfrageproblem mysql

am 09.12.2004 11:59:07 von Werner Laude

Am 09.12.2004 11:23 erhielt ich diese mail von Johannes Vogel:

>=20
> Falls es sich um viele Felder handelt, könntest du sie auch binär=20
> kodieren. Dann kannst du einfach per:
>=20
> where (kat & (64+32+8)) > 1
>=20
> alle abfragen, welche das 4., 6. und 7. bit eingeschaltet haben.
> Das ist auch ganz schön handzuhaben betreffend Felderanzahl und Indiz=
es.=20
> Weniger schön: Es ist nicht sofort ersichtlich, welche Stelle, welche=
=20
> Bedeutung hat.

Hallo Johannes..
mhh. ist mir noch etwas weit wech.. kannst du mich da mal ans Händchen =

nehmen ?
Es sind nur 10 Checkboxen...
Gruß

--=20
WebAgentur | Werner Laude

Schreberstr. 9 | 51105 Köln

fon 0221.8805 635
fax auf Anfrage

------------------------------------------

http://www.laude.biz

Re: Abfrageproblem mysql

am 09.12.2004 12:53:04 von Niels Braczek

Johannes Vogel schrieb:
> Werner Laude wrote:

>> Wie kann ich da am Besten rangehen ?
>> Normalisieren, aber wie.. Set und Enum ?
>
> Falls es sich um viele Felder handelt, könntest du sie auch binär
> kodieren. Dann kannst du einfach per:
> where (kat & (64+32+8)) > 1

Das ist nichts anderes als ein SET zu Fuß.

MfG
Niels

--
The Linux environment is more insecure than Microsoft.
This is an issue the industry needs to be aware of.
[Mark Greatorex, Leiter der .NET Entwicklergruppe bei Microsoft]

Re: Abfrageproblem mysql

am 09.12.2004 13:00:21 von Johannes Vogel

Hi Werner

Werner Laude wrote:
> Am 09.12.2004 11:23 erhielt ich diese mail von Johannes Vogel:
>> Falls es sich um viele Felder handelt, könntest du sie auch binär
>> kodieren. Dann kannst du einfach per:
>> where (kat & (64+32+8)) > 1
>> alle abfragen, welche das 4., 6. und 7. bit eingeschaltet haben.
>> Das ist auch ganz schön handzuhaben betreffend Felderanzahl und
>> Indizes. Weniger schön: Es ist nicht sofort ersichtlich, welche
>> Stelle, welche Bedeutung hat.
> mhh. ist mir noch etwas weit wech.. kannst du mich da mal ans Händchen
> nehmen ?
> Es sind nur 10 Checkboxen...

Man wähle das Binärsystem als Speicherform. Zulässig sind also Ziffern 0
und 1. Jede Stelle entspricht einer Checkbox.

Aber besser ist, du folgst der Anweisung von Niels:
11.4.5 The SET Type
http://dev.mysql.com/doc/mysql/en/SET.html

Da kannst du nämlich dem Problem, den Stellen auch Bezeichnungen zu
geben, entgehen und musst dich nicht mal gross um die Reihenfolge
kümmern. :-)

HTH, Johannes

Re: Abfrageproblem mysql

am 09.12.2004 15:30:52 von Werner Laude

Am 09.12.2004 12:53 erhielt ich diese mail von Niels Braczek:
> Johannes Vogel schrieb:
>=20
>>Werner Laude wrote:
>=20
>=20
(kat & (64+32+8)) > 1
>=20
>=20
> Das ist nichts anderes als ein SET zu Fuß.
>=20
> MfG
> Niels
>=20
danke..
mal lesen angesagt..

--=20
WebAgentur | Werner Laude

Schreberstr. 9 | 51105 Köln

fon 0221.8805 635
fax auf Anfrage

------------------------------------------

http://www.laude.biz