[mysql] true/false in database

Pagina: 1
Acties:
  • 149 views sinds 30-01-2008
  • Reageer

  • ikker
  • Registratie: Oktober 2001
  • Laatst online: 02-09 16:30

ikker

No Risk No Pain No Fun!!!

Topicstarter
kan ik een kolom de waarde true/false meegeven?
en zo ja hoe?
ik kan op php.net niets vinden
ik kan op mysql.com niets vinden
ik kan in de search niets vinden

Mijn netwerkje


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

char(1) werkt perfect.

Klaar voor een nieuwe uitdaging.


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

ENUM("true", "false") ook niet gevonden? :)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
http://www.mysql.com/doc/C/o/Column_types.html

en dan ff Ctrl-F op BIT of BOOL, dan vind je je vanzelf :)
Het is eigenlijk gewoon een TINYINT die 1 bit lang is. Het kan dus een 0 of 1 zijn :)

  • ikker
  • Registratie: Oktober 2001
  • Laatst online: 02-09 16:30

ikker

No Risk No Pain No Fun!!!

Topicstarter
ik was er al bang voor maar een boolean bestaat dus niet in SQL. :o
minpuntje

toch bedankt

Mijn netwerkje


  • ikker
  • Registratie: Oktober 2001
  • Laatst online: 02-09 16:30

ikker

No Risk No Pain No Fun!!!

Topicstarter
thx glimi....dat zocht ik idd.
* ikker heeft weer wat geleerd vandaag


* ikker vraagt zich af of hij nu naar huis mag

Mijn netwerkje


Verwijderd

Op donderdag 06 juni 2002 10:05 schreef ikker het volgende:
ik was er al bang voor maar een boolean bestaat dus niet in SQL. :o
minpuntje
wat zou het nut zijn van het toevoegen van een type boolean als je dat toch al op 20 manieren kunt implementeren...

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Glimi:
Het is eigenlijk gewoon een TINYINT die 1 bit lang is. Het kan dus een 0 of 1 zijn :)
Nope.
D'r staat
These are synonyms for TINYINT(1)
TINYINT(1) kan -9 t/m 9 bevatten. Da's een rare bit ;)

TYPE(n)
staat voor TYPE waarvan 'n' characters opgeslagen worden (vreemd genoeg), exclusief eventueel het '-' teken

INT(5) betekent dus niet iets als een INT van vijf bits, ofzo, maar dat je alles in kunt voeren tussen de -99999 en de 99999

Maar goed, ontopic: ik gebruik altijd TINYINT(1)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Op donderdag 06 juni 2002 10:18 schreef drm het volgende:
Nope.
D'r staat
TINYINT(1) kan -9 t/m 9 bevatten. Da's een rare bit ;)

TYPE(n)
staat voor TYPE waarvan 'n' characters opgeslagen worden (vreemd genoeg), exclusief eventueel het '-' teken

INT(5) betekent dus niet iets als een INT van vijf bits, ofzo, maar dat je alles in kunt voeren tussen de -99999 en de 99999

Maar goed, ontopic: ik gebruik altijd TINYINT(1)
Oops, my mistake!! :X

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op donderdag 06 juni 2002 10:05 schreef ikker het volgende:
ik was er al bang voor maar een boolean bestaat dus niet in SQL. :o
minpuntje

toch bedankt
mysql != sql

Veel SQL databases kennen wel degelijk de boolean ;)
Op donderdag 06 juni 2002 10:18 schreef drm het volgende:
TINYINT(1) kan -9 t/m 9 bevatten. Da's een rare bit ;)

TYPE(n)
staat voor TYPE waarvan 'n' characters opgeslagen worden (vreemd genoeg), exclusief eventueel het '-' teken

INT(5) betekent dus niet iets als een INT van vijf bits, ofzo, maar dat je alles in kunt voeren tussen de -99999 en de 99999

Maar goed, ontopic: ik gebruik altijd TINYINT(1)
Bij mijn weten negeert mysql die (1) bij tinyint (en die (5) bij int), ik zal het es testen.

  • 3o3
  • Registratie: Oktober 2001
  • Laatst online: 30-07-2006

3o3

ik gebruik ook TINYINT(1)
works like a charme.. :P

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op donderdag 06 juni 2002 12:17 schreef 3o3 het volgende:
ik gebruik ook TINYINT(1)
works like a charme.. :P
die (1) kan je gerust weglaten:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
mysql> create table test(bla int(3), blaat tinyint(1));
Query OK, 0 rows affected (0.01 sec)

mysql> insert into test values (12345, 123);
Query OK, 1 row affected (0.19 sec)

mysql> select * from test;
+-------+-------+
| bla   | blaat |
+-------+-------+
| 12345 |   123 |
+-------+-------+
1 row in set (0.00 sec)

mysql> create table test2(bla int(3), blaat tinyint(11));
Query OK, 0 rows affected (0.01 sec)

mysql> insert into test2 values (12345, 1234543);
Query OK, 1 row affected (0.01 sec)

mysql> select * from test2;
+-------+-------+
| bla   | blaat |
+-------+-------+
| 12345 |   127 |
+-------+-------+
1 row in set (0.01 sec)

Wordt dus inderdaad gewoon genegeerd.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
fladder: wat zou het nut zijn van het toevoegen van een type boolean als je dat toch al op 20 manieren kunt implementeren...
Daar zie ik eigenlijk toch nog wel steeds een voordeel van. Juist omdat je het op 20 manieren kunt realiseren eigenlijk.

Booleans worden nu in veel systemen verschillend behandeld (char, tinyint, enum om maar eens wat te noemen) en dat zorgt voor onduidelijkheid en problemen.

Een paar voorbeelden van problemen:
- programmeer vergist zich in gekozen aanpak
- database dump invoegen in een database die een andere aanpak heeft.
- databases met verschillende boolean aanpakken combineren in een gedistribueerd database systeem
enz...

* mbravenboer is dus voor een standaard Boolean :) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

ACM:
die (1) kan je gerust weglaten:
[code]
Wordt dus inderdaad gewoon genegeerd.
Dat verbaast me... ik zou toch zweren dat ik in de manual anders heb gelezen...

* drm ging toen ff zoeken waar dat dan was ...

edit:
uit: www.mysql.com/doc/C/o/Column_types.html

M indicates the maximum display size. The maximum legal display size is 255
[..]
TINYINT[(M)] [UNSIGNED] [ZEROFILL]
A very small integer. The signed range is -128 to 127. The unsigned range is 0 to 255.
Daar dus...
:? apart

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • goalgetter
  • Registratie: Juni 1999
  • Laatst online: 25-08 15:24
Jij hebt het over het maximale bereik wat je in zo'n field kan gooien. ACM had het over de lengte van de fields die je officieel als argument mee geeft bij de table create definitie. Dit lengte argument wordt wel degelijk genegeerd door mysql zoals in het voorbeeldje ook duidelijk wordt.

Verwijderd

Op donderdag 06 juni 2002 12:19 schreef mbravenboer het volgende:

[..]

Daar zie ik eigenlijk toch nog wel steeds een voordeel van. Juist omdat je het op 20 manieren kunt realiseren eigenlijk.

Booleans worden nu in veel systemen verschillend behandeld (char, tinyint, enum om maar eens wat te noemen) en dat zorgt voor onduidelijkheid en problemen.

Een paar voorbeelden van problemen:
- programmeer vergist zich in gekozen aanpak
- database dump invoegen in een database die een andere aanpak heeft.
- databases met verschillende boolean aanpakken combineren in een gedistribueerd database systeem
enz...

* mbravenboer is dus voor een standaard Boolean :) .
ik kijk daar toch echt op een andere manier naar.
Als je kunt afspreken dat een bepaald field van het type boolean is dan moet het net zo goed mogelijk zijn om af te spreken dat een field van het type enum('1','0') is...

kwestie van afspraken enzo, en die heb je nou eenmaal nodig bij gedistribueerde systemen :)

  • Arx
  • Registratie: November 2001
  • Laatst online: 31-08 15:22

Arx

Two Thoughts Ahead!

MySQL kent degelijk wel een boolean, deze wordt het zelfde gedefineerd als in C++.

Komt ie:

>> COLUMNNAAM ENUM('false','true') << waarbij de eerst enum de default waarde is, in dit geval false.

Alsjeblieft. :)

Copywight 2000,2001,2002,2003,2004,2005,2006,2007 Arx. All wights wesewved. | PS Network tag -> Arx_nl


Verwijderd

Op donderdag 06 juni 2002 14:54 schreef Arx het volgende:
MySQL kent degelijk wel een boolean, deze wordt het zelfde gedefineerd als in C++.

Komt ie:

>> COLUMNNAAM ENUM('false','true') << waarbij de eerst enum de default waarde is, in dit geval false.

Alsjeblieft. :)
dat is geen boolean, dat is een Boolean :)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
fladder: dat is geen boolean, dat is een Boolean :)
en bovendien hadden we het uiteraard over het ontbreken van een boolean in SQL, niet in MySQL :) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Willem
  • Registratie: Februari 2001
  • Laatst online: 17:48
goalgetter:
Jij hebt het over het maximale bereik wat je in zo'n field kan gooien. ACM had het over de lengte van de fields die je officieel als argument mee geeft bij de table create definitie. Dit lengte argument wordt wel degelijk genegeerd door mysql zoals in het voorbeeldje ook duidelijk wordt.
Volgens mij lees je niet goed...
fladder:
kwestie van afspraken enzo, en die heb je nou eenmaal nodig bij gedistribueerde systemen :)
En wat is nou een betere afspraak dan een standaard? ;)

Motor (of auto) onderhoud bijhouden


  • vandijk
  • Registratie: Oktober 1999
  • Laatst online: 06-09 17:26
maar dan kan je nog steeds niet testen of iets false of true is... Je krijgt dan string terug.
Ik weet ook niet of je dan iets kan doen als select * from tabel where not gewist (tabel 'tabel' met kolom 'gewist' erin van het type enum('true','false')

Canon cameras en lenzen. Elinchrom flitsers, Lowepro en Pelican tassen/koffers. Polestar 2


Verwijderd

Op donderdag 06 juni 2002 15:01 schreef vandijk het volgende:
maar dan kan je nog steeds niet testen of iets false of true is... Je krijgt dan string terug.
Ik weet ook niet of je dan iets kan doen als select * from tabel where not gewist (tabel 'tabel' met kolom 'gewist' erin van het type enum('true','false')
where gewist = 'false' :?

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Op donderdag 06 juni 2002 15:00 schreef drm een verhaal onder een valse nick
;)

< /ot >

altijd leuk als willem169 en drm pc's gewisseld hebben |:( ;)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1