/ 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
True / False i MySql
Fra : Anders Holm Jensen


Dato : 14-03-03 18:08

Hej

Hvis jeg skal et true / false felt i en MySql database, hvilke type skal jeg
så vælge ? Eller laver man det bare en type char på 1 i længde ?

--
Hilsen AHJ



 
 
Jakob Andersen (14-03-2003)
Kommentar
Fra : Jakob Andersen


Dato : 14-03-03 19:16

Anders Holm Jensen skrev:
> Hvis jeg skal et true / false felt i en MySql database, hvilke type skal jeg
> så vælge ? Eller laver man det bare en type char på 1 i længde ?

MySQL har ikke en decideret true/false type, men mange vælger at benytte et
enumfelt (indeholdende 1/0 "t"/"f" eller lign.) til formålet. Andre benytter
en tinyint.

--
Jakob Andersen

Anders Holm Jensen (14-03-2003)
Kommentar
Fra : Anders Holm Jensen


Dato : 14-03-03 19:25

"Jakob Andersen" <jakob@effectus.dk> skrev i en meddelelse
news:slrnb7472p.13d.jakob@dolomit.but.auc.dk...
> Anders Holm Jensen skrev:
> > Hvis jeg skal et true / false felt i en MySql database, hvilke type skal
jeg
> > så vælge ? Eller laver man det bare en type char på 1 i længde ?
>
> MySQL har ikke en decideret true/false type, men mange vælger at benytte
et
> enumfelt (indeholdende 1/0 "t"/"f" eller lign.) til formålet. Andre
benytter
> en tinyint.

Kan en enum indholde flere værdier ? eksempelvis 10,20,30,40,60 og så er det
kun de værdier man kan lægge ind ?

Hilsen AHJ

>
> --
> Jakob Andersen



Jakob Andersen (14-03-2003)
Kommentar
Fra : Jakob Andersen


Dato : 14-03-03 20:08

Anders Holm Jensen skrev:
> Kan en enum indholde flere værdier ? eksempelvis 10,20,30,40,60 og så er det
> kun de værdier man kan lægge ind ?

Jeg tror vist at jeg lige fik talt over mig med 1/0 værdier i ENUM eftersom
at man kun kan benytte strings i enum. Man specificerer hvilke værdier der
må benyttes i den pågældende ENUM kolonne i enten CREATE TABLE eller ALTER
TABLE udtykket.

Kig evt også på SET:
http://www.mysql.com/doc/en/ENUM.html
http://www.mysql.com/doc/en/SET.html

--
Jakob Andersen

Anders Holm Jensen (14-03-2003)
Kommentar
Fra : Anders Holm Jensen


Dato : 14-03-03 19:27

"Jakob Andersen" <jakob@effectus.dk> skrev i en meddelelse
news:slrnb7472p.13d.jakob@dolomit.but.auc.dk...
> Anders Holm Jensen skrev:
> > Hvis jeg skal et true / false felt i en MySql database, hvilke type skal
jeg
> > så vælge ? Eller laver man det bare en type char på 1 i længde ?
>
> MySQL har ikke en decideret true/false type, men mange vælger at benytte
et
> enumfelt (indeholdende 1/0 "t"/"f" eller lign.) til formålet. Andre
benytter
> en tinyint.

Og hvordan lægger man enum værdier ind ?

Hilsen AHJ
>
> --
> Jakob Andersen



Mads Lie Jensen (14-03-2003)
Kommentar
Fra : Mads Lie Jensen


Dato : 14-03-03 20:16

On Fri, 14 Mar 2003 18:07:48 +0100, "Anders Holm Jensen"
<dwoor@oncable.dk> wrote:

>Hvis jeg skal et true / false felt i en MySql database, hvilke type skal jeg
>så vælge ? Eller laver man det bare en type char på 1 i længde ?

Enum er oplagt.
--
Mads Lie Jensen - mads@gartneriet.dk - ICQ #25478403
http://www.gartneriet.dk
Lær af andres fejl
- du lever alligevel ikke længe nok til selv at prøve dem alle.

Peter Brodersen (15-03-2003)
Kommentar
Fra : Peter Brodersen


Dato : 15-03-03 14:59

On Fri, 14 Mar 2003 20:16:06 +0100, Mads Lie Jensen
<mads@gartneriet.dk> wrote:

>Enum er oplagt.

Eneste detalje er, at enum også tillader tomme værdier (ikke at
forveksle med NULL-værdier).

Et felt som enum('ja','nej') NOT NULL med 'ja' som default vil give
følgende resultat:

INSERT INTO tabel VALUES('ja'); // indsætter ja
INSERT INTO tabel VALUES('nej'); // indsætter nej
INSERT INTO tabel VALUES(''); // indsætter en tom streng
INSERT INTO tabel VALUES('foo'); // indsætter en tom streng
INSERT INTO tabel VALUES(); // indsætter ja

Det behøver der ikke at være noget mærkeligt i - men man bør stadigvæk
være opmærksom på at der i teorien kan opstå tilfælde, hvor feltet
hverken indeholder "ja" eller "nej".

--
- Peter Brodersen

Jonas Koch Bentzen (14-03-2003)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 14-03-03 20:53

Anders Holm Jensen wrote:
>
> Hvis jeg skal et true / false felt i en MySql database, hvilke type skal
> jeg så vælge ? Eller laver man det bare en type char på 1 i længde ?

Jeg ville vælge smallint og så fylde 1 eller 0 i. På den måde er det
kompatibelt med SQL og vil derfor også virke, hvis dit program pludselig én
dag skal kunne køre på en anden databaseserver end lige MySQL.

MySQL's tinyint er også en mulighed, men jeg mener ikke, den datatype er en
del af standard-SQL.

--
Jonas Koch Bentzen

http://findhim.com/

Thorbjoern Ravn Ande~ (15-03-2003)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 15-03-03 12:47

"Anders Holm Jensen" <dwoor@oncable.dk> writes:

> Hvis jeg skal et true / false felt i en MySql database, hvilke type skal jeg
> så vælge ? Eller laver man det bare en type char på 1 i længde ?

Jeg forsøgte for et par år siden at lave en J/N værdi ved et begrænset
1-tegnsfelt. Det virkede ikke. Kawær det er fikset siden.
--
Thorbjørn Ravn Andersen
http://unixsnedkeren.dk/ravn

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste