MySQL med multiple betingelser

Tags:    databaser

Hej Udviklerens brugere,

Jeg er stødt ind i et måske lidt tricky spørgsmål.

Er det muligt i MySQL at lave en database med multiple betingelser?

Mit problemer står i, at jeg har en start betingelse, hvorefter der kommer en ny betingelse. (Dimensionelt set, er det forrige y-punktet i min komplette betingelsesrække).

Dernæst kommer min x-betingelse, hvor jeg har noget fra siden, altsammen for at udvælge noget i en tabel automatisk, som er indtastet slavisk. Det skal bruges til et skoleprojekt.

Grafisk opsat ser det nogenlunde således ud:
y|Betingelse 1|Betingelse 1|
y|Betin.2|Bet2.|bet.2|bet.2|
x bet.3| data |data| data |data|
x bet.3| data |data|data|data|

Håber, det er forståeligt, hvis hver venlig at minde mig om det, så skal jeg nok prøve at klargøre det yderligere.

På forhånd tak,
Andreas Hartvig.



7 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 5 karma
Sorter efter stemmer Sorter efter dato
Nu har jeg ikke lige tænkt voldsomt meget over det, men kan du ikke lave en tabel med fire kolonner:

Create table ds700 (driftstid int, brnd_tid int, tid_udskift int, 3-pulverror float);

Eller noget lign og fylde dine tal i den? Det afhænger nok af, hvordan tabellen skal bruges. Hvis du har de tre værdier over dobbelt stregen og skal finde den sidste, kan du lave en select * from ds700 where driftstid=5000 and brnd_tid = 7500 and tid_udskift = 3





Jeg er ikke helt med på, hvad du mener med betingelse. Kan du komme med et eksempel?



Jeg er ikke helt med på, hvad du mener med betingelse. Kan du komme med et eksempel?


Det er en tabel til udregning af en vedligeholdelsesfaktor,
hvor jeg skal bruge en todimensionel tabel.

Det vil sige, det drejer sig om noget, der hedder i NB-metoden til at beregne, hvor mange armaturer, der skal være i et givent rum.

For at finde Vedligeholdelsesfaktoren, skal man pt. kigge i nogle tabeller, vi har fået udleveret.

Ved at kigge på disse tabeller, kan man komme frem til nogle tal, som er afgørende for en given lysstyrke for de armaturer, man sætter op.

Dette vil jeg prøve at automatisere, så man ikke skal kigge på de udleverede stykker papir.

Et eksempel kan være:

Første betingelse(y): Årlig drifttids svarende til brændetimer pr. år
Første betingelse grener sig så ud til tre andre valgmuligheder, som vælges i anden betingelse.
Anden betingelse (y): Brændetimer mellem udskiftningerne.
Denne grener sig ud til antal år imellem grupperengøring, hvor man ligeledes har tre valgmuligheder:
Tredje betingelse (y): Tid mellem gruppeudskift/grupperengøring, hvilket er sidste betingelse i y-delen af værdiudvælgelsen i den overordnede tabel.

Fjerde og sidste betingelse (x): Der vælger man, hvilken type lyskilde, det drejer sig om, fx om det er en Glødelampe eller et lysstofrør.

Prøver lige at finde tabellen. Den er nemlig at finde i DS 700, Figur 2.11.

Tak for det hurtige svar :)




Jeg er ikke helt med på, hvad du mener med betingelse. Kan du komme med et eksempel?


Beklager den ringe kvalitet på følgende billede, men det var hvad jeg kunne præstere på 10min og et Touchpad.

http://www.simplecodeconsulting.com/ds700eks.JPG

Håber det giver et bedre lys på problemstillingen.



Nu har jeg ikke lige tænkt voldsomt meget over det, men kan du ikke lave en tabel med fire kolonner:

Create table ds700 (driftstid int, brnd_tid int, tid_udskift int, 3-pulverror float);

Eller noget lign og fylde dine tal i den? Det afhænger nok af, hvordan tabellen skal bruges. Hvis du har de tre værdier over dobbelt stregen og skal finde den sidste, kan du lave en select * from ds700 where driftstid=5000 and brnd_tid = 7500 and tid_udskift = 3



Tak, skal du have. Havde selv tænkt, at querien skulle se sådan ud, men det ville være et værre spildarbejde at gå i gang med at fylde data i tabel, som var forkert opsat, derfor ville jeg spørge først. Jeg prøver det lige først, og så vender jeg tilbage :)

Men et spørgsmål til, bliver tabellen så todimensionel på den måde? Den skal jo ramme uhyre præcist. :)

Men du skal have tusind tak. :)





En SQL tabel har altid to dimensioner. Når du selecter, får du alle de rækker, som opfylder de betingelser som du skriver i WHERE delen. Prøv det med en lille tabel, som den der er i det eksempel du gav.




En SQL tabel har altid to dimensioner. Når du selecter, får du alle de rækker, som opfylder de betingelser som du skriver i WHERE delen. Prøv det med en lille tabel, som den der er i det eksempel du gav.


Yes, of course. Kom jeg også i tanke om bagefter, men har ikke lavet tabeller lignende denne før(med ANDs), så har aldrig tænkt over det før. :) det virker, tak skal du have. :)



t