/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
MySQL - erstat værdi i udtræk
Fra : Kim Emax - ayianapa.~


Dato : 11-09-02 14:13

jeg sidder og prøver at lave et udtræk, hvor feltet status kan indeholde fra
0-5 i værdi, jeg kunne så godt tænke mig at outputtet spytter en mere
signede forklaring ud end 0,1,2 osv, men f.eks. afmeldt, afventer,
bekræftet. Har kigget lidt på if og case, men kan ikke se at det er der, jeg
skal kigge. Spørgsmålet er om det overhovedet kan lade sig gøre?

--
Take Care
Kim Emax - Freelance programmør - Pt. Job og opgavesøgende.
http://www.emax.dk - http://www.ayianapa.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks måske mest avancerede VinWebShop



 
 
Mads Lie Jensen (11-09-2002)
Kommentar
Fra : Mads Lie Jensen


Dato : 11-09-02 14:44

On Wed, 11 Sep 2002 15:12:57 +0200, "Kim Emax - ayianapa.dk"
<newsgroup@fjerndette-ayianapa.dk> wrote:

>jeg sidder og prøver at lave et udtræk, hvor feltet status kan indeholde fra
>0-5 i værdi, jeg kunne så godt tænke mig at outputtet spytter en mere
>signede forklaring ud end 0,1,2 osv, men f.eks. afmeldt, afventer,
>bekræftet. Har kigget lidt på if og case, men kan ikke se at det er der, jeg
>skal kigge. Spørgsmålet er om det overhovedet kan lade sig gøre?

Du skal have fat i CASE:

SELECT CASE WHEN status=0 THEN "afmeldt" WHEN status=1 THEN "tilmeldt"
WHEN .... END;

Eller lav din kolonne om til at være af typen ENUM.

--
Mads Lie Jensen - mads@gartneriet.dk - ICQ #25478403
http://www.gartneriet.dk
- nu med link til egne billeder fra Aero-koncerten
med Jean Michel Jarre

Kim Emax - ayianapa.~ (11-09-2002)
Kommentar
Fra : Kim Emax - ayianapa.~


Dato : 11-09-02 14:57


"Mads Lie Jensen" <mads@gartneriet.dk> skrev

> SELECT CASE WHEN status=0 THEN "afmeldt" WHEN status=1 THEN "tilmeldt"
> WHEN .... END;

hmm.. den har jeg prøvet... med ovennævnte syntax. jeg kigger på den igen.

--
Take Care
Kim Emax - Freelance programmør - Pt. Job og opgavesøgende.
http://www.emax.dk - http://www.ayianapa.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks måske mest avancerede VinWebShop



Kim Emax - ayianapa.~ (11-09-2002)
Kommentar
Fra : Kim Emax - ayianapa.~


Dato : 11-09-02 15:04


"Kim Emax - ayianapa.dk" <newsgroup@fjerndette-ayianapa.dk> skrev i

> hmm.. den har jeg prøvet... med ovennævnte syntax. jeg kigger på den igen.

godt, så virker det, takker

select name, email, CASE WHEN status=0 THEN "afmeldt" WHEN status=1 THEN
"afventer betaling" WHEN status=2 THEN "betalt" END as status FROM tabel;

--
Take Care
Kim Emax - Freelance programmør - Pt. Job og opgavesøgende.
http://www.emax.dk - http://www.ayianapa.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks måske mest avancerede VinWebShop



Jesper Brunholm (13-09-2002)
Kommentar
Fra : Jesper Brunholm


Dato : 13-09-02 10:28

Kim Emax - ayianapa.dk wrote:
> godt, så virker det, takker
>
> select name, email, CASE WHEN status=0 THEN "afmeldt" WHEN status=1 THEN
> "afventer betaling" WHEN status=2 THEN "betalt" END as status FROM tabel;

Er der en grund til at du ikke bare ændrer til et enum-felt: ENUM(
'afventer betaling', 'betalt', 'etc')?

mvh

Jesper Brunholm



Kim Emax - ayianapa.~ (13-09-2002)
Kommentar
Fra : Kim Emax - ayianapa.~


Dato : 13-09-02 14:11


"Jesper Brunholm" <nospam@brunholm-scharff.dk> skrev'

> Er der en grund til at du ikke bare ændrer til et enum-felt: ENUM(
> 'afventer betaling', 'betalt', 'etc')?

lidt for mange steder at rette det i koden bl.a. Jeg bruger generelt ikke
enum, hvis jeg nu ønsker at tilføre endnu et nummer, så skal jeg også i gang
med alter table. Så er jeg lige i skrivende stund i tvivl om man overhovedet
kan smide indexes på enum? Logisk set kan man... så er der storage, "betalt"
fylder mere end "2"

--
Take Care
Kim Emax - Freelance programmør - Pt. Job og opgavesøgende.
http://www.emax.dk - http://www.ayianapa.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks måske mest avancerede VinWebShop



Jesper Brunholm (13-09-2002)
Kommentar
Fra : Jesper Brunholm


Dato : 13-09-02 15:08

Kim Emax - ayianapa.dk wrote:
> "Jesper Brunholm" <nospam@brunholm-scharff.dk> skrev'

>>Er der en grund til at du ikke bare ændrer til et enum-felt: ENUM(
>>'afventer betaling', 'betalt', 'etc')?
>
>
> lidt for mange steder at rette det i koden bl.a. Jeg bruger generelt ikke
> enum, hvis jeg nu ønsker at tilføre endnu et nummer, så skal jeg også i gang
> med alter table.

tjah - jeg laver normalt al min table-opsætning i phpmyadmin

Så er jeg lige i skrivende stund i tvivl om man overhovedet
> kan smide indexes på enum? Logisk set kan man...

Det er jeg ret sikker på

så er der storage, "betalt"
> fylder mere end "2"

nej - det er det fantastiske ved enum: den trækker 1 byte opbevaring pr
værdi op til 255 forskellige værdier i kolonnen, derefter 2 bytes per
værdi. (se <http://www.mysql.com/doc/en/Storage_requirements.html> og
evt <http://www.mysql.com/doc/en/ENUM.html>, jeg fandt det dog i min
MySQL-bog først

mvh

Jesper Brunholm

--
Phønix - dansk folk-musik fra unge musikere - http://www.phonixfolk.dk


Kim Emax - ayianapa.~ (13-09-2002)
Kommentar
Fra : Kim Emax - ayianapa.~


Dato : 13-09-02 15:17


"Jesper Brunholm" <nospam@brunholm-scharff.dk> skrev

> tjah - jeg laver normalt al min table-opsætning i phpmyadmin

uark! Den hader jeg, har set den rette en NULL til "", pludselig var der en
snes domains, der havde mistet deres master domain.. og ham der, der nu
begyndte at pille i databasen med PHPmyAdmin, ja, han fik et drag over
nakken

> nej - det er det fantastiske ved enum: den trækker 1 byte opbevaring pr
> værdi op til 255 forskellige værdier i kolonnen, derefter 2 bytes per
> værdi. (se <http://www.mysql.com/doc/en/Storage_requirements.html> og
> evt <http://www.mysql.com/doc/en/ENUM.html>, jeg fandt det dog i min
> MySQL-bog først

interessant, kigger jeg på lige ved lejlighed...selvom jeg ikke er hip på
enum

--
Take Care
Kim Emax - Freelance programmør - Pt. Job og opgavesøgende.
http://www.emax.dk - http://www.ayianapa.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks måske mest avancerede VinWebShop



Mads Lie Jensen (13-09-2002)
Kommentar
Fra : Mads Lie Jensen


Dato : 13-09-02 15:19

On Fri, 13 Sep 2002 15:11:16 +0200, "Kim Emax - ayianapa.dk"
<newsgroup@fjerndette-ayianapa.dk> wrote:

>> Er der en grund til at du ikke bare ændrer til et enum-felt: ENUM(
>> 'afventer betaling', 'betalt', 'etc')?
>
>lidt for mange steder at rette det i koden bl.a. Jeg bruger generelt ikke
>enum, hvis jeg nu ønsker at tilføre endnu et nummer, så skal jeg også i gang
>med alter table. Så er jeg lige i skrivende stund i tvivl om man overhovedet
>kan smide indexes på enum? Logisk set kan man... så er der storage, "betalt"
>fylder mere end "2"

Fra min udprintede mySQL-manual:

Storage requirements for string types:

ENUM('value1', 'value2', ...) - 1 or 2 bytes, depending on the number of
enumeration values (65535 values maximun).

En INT er til sammenligning 4 bytes.

Der kan godt være index på en ENUM.

Enum er lidt smart syntes jeg - men du'r ikke hvis man f.eks vil have
mulighed for at vise sine data på flere sprog.

--
Mads Lie Jensen - mads@gartneriet.dk - ICQ #25478403
http://www.gartneriet.dk
- nu med link til egne billeder fra Aero-koncerten
med Jean Michel Jarre

Kim Emax - ayianapa.~ (13-09-2002)
Kommentar
Fra : Kim Emax - ayianapa.~


Dato : 13-09-02 15:34


"Mads Lie Jensen" <mads@gartneriet.dk> skrev

> Fra min udprintede mySQL-manual:
>
> Storage requirements for string types:
>
> ENUM('value1', 'value2', ...) - 1 or 2 bytes, depending on the number of
> enumeration values (65535 values maximun).
>
> En INT er til sammenligning 4 bytes.
>
> Der kan godt være index på en ENUM.
>
> Enum er lidt smart syntes jeg - men du'r ikke hvis man f.eks vil have
> mulighed for at vise sine data på flere sprog.

takker for oplysningen

--
Take Care
Kim Emax - Freelance programmør - Pt. Job og opgavesøgende.
http://www.emax.dk - http://www.ayianapa.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks måske mest avancerede VinWebShop



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste