Avatar billede spiri Nybegynder
23. maj 2002 - 14:08 Der er 7 kommentarer og
2 løsninger

'if' i SQL sætning

Jeg har lige et lidt underligt spørgsmål.

Det er lidt kryptisk at forklare så jeg prøver lige med et eksempel.

Hvis jeg har en tabel med felterne:

ID, Status, Navn

Her vil jeg gerne vælge alle linjer med navnet peter, men KUN hvis der står 'a' i status feltet

Det hele SKAL være i én sætning.

Giver dette mening??
Avatar billede proaccess Nybegynder
23. maj 2002 - 14:18 #1
SELECT * FROM TabelNavn WHERE Status='a' AND Navn='Peter';
Avatar billede spiri Nybegynder
23. maj 2002 - 14:34 #2
Så nemt er det jo nok ikke.

Så henter den jo kun linjer hvor der står a og peter.

Det tricky er jo at den også skal hente alle de andre linjer.


Jeg prøver lige at forklare det igen.

Grundlæggende er det bare SELECT * FROM tabel

Det tricky er hvis der står 'a' i status feltet SKAL der stå 'peter' i navne feltet, ellers skal den pågældende linje ikke med i resultsettet

Gav det mere mening.
Avatar billede proaccess Nybegynder
23. maj 2002 - 14:38 #3
NETOP: Du vil have alle records, hvor der står 'a' i status OG 'peter' i navn !!!

Alternativt:

SELECT * FROM tabelNavn WHERE Status<>'a' UNION SELECT * FROM TabelNavn WHERE Status='a' AND Navn='Peter';
Avatar billede proaccess Nybegynder
23. maj 2002 - 14:38 #4
Den henter alle records med status <>'a' OG de records med status 'a', som hedder 'Peter'...
Avatar billede spiri Nybegynder
23. maj 2002 - 14:46 #5
Ok jeg prøver lige én gang til.

Lad os sige at jeg har disse linjer:

1 a peter
2 a niels
3 b peter
4 b niels

Mit søgeresultat skal så være:

1 a peter
3 b peter
4 b niels

Giver det mening nu?
Avatar billede spiri Nybegynder
23. maj 2002 - 14:50 #6
Desuden er UNION vel også en MySQL 4.0 ting.

Eller tager jeg fejl?
Avatar billede proaccess Nybegynder
23. maj 2002 - 14:54 #7
Du burde da godt kunne bruge UNION tidligere...

Og ellers er det den rigtige syntax, til at løse dit problem...
Avatar billede tipsen Nybegynder
23. maj 2002 - 15:38 #8
Du modsiger godt nok dig selv lidt i dine forklaringer af det ønskede output, men jeg prøver følgende - som matcher en af dine forklaringer (ligesom proaccess' svar besvarede første forklaring)

SELECT * FROM TabelNavn WHERE (Navn!='Peter') OR (Navn='Peter' AND Status='a');
Avatar billede spiri Nybegynder
23. maj 2002 - 18:10 #9
-> tipsen

Der var den jo.

Tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester