Mijn netwerkje
Klaar voor een nieuwe uitdaging.
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
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
minpuntje
toch bedankt
Mijn netwerkje
* ikker heeft weer wat geleerd vandaag
* ikker vraagt zich af of hij nu naar huis mag
Mijn netwerkje
Verwijderd
wat zou het nut zijn van het toevoegen van een type boolean als je dat toch al op 20 manieren kunt implementeren...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.![]()
minpuntje
Nope.Glimi:
Het is eigenlijk gewoon een TINYINT die 1 bit lang is. Het kan dus een 0 of 1 zijn
D'r staat
TINYINT(1) kan -9 t/m 9 bevatten. Da's een rare bitThese are synonyms for TINYINT(1)
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
Oops, my mistake!!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)
mysql != sqlOp donderdag 06 juni 2002 10:05 schreef ikker het volgende:
ik was er al bang voor maar een boolean bestaat dus niet in SQL.![]()
minpuntje
toch bedankt
Veel SQL databases kennen wel degelijk de boolean
Bij mijn weten negeert mysql die (1) bij tinyint (en die (5) bij int), ik zal het es testen.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)
die (1) kan je gerust weglaten:Op donderdag 06 juni 2002 12:17 schreef 3o3 het volgende:
ik gebruik ook TINYINT(1)
works like a charme..
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.
Daar zie ik eigenlijk toch nog wel steeds een voordeel van. Juist omdat je het op 20 manieren kunt realiseren eigenlijk.fladder: wat zou het nut zijn van het toevoegen van een type boolean als je dat toch al op 20 manieren kunt implementeren...
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
Dat verbaast me... ik zou toch zweren dat ik in de manual anders heb gelezen...ACM:
die (1) kan je gerust weglaten:
[code]
Wordt dus inderdaad gewoon genegeerd.
* drm ging toen ff zoeken waar dat dan was ...
edit:
Daar dus...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.
Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz
Verwijderd
ik kijk daar toch echt op een andere manier naar.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.
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
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
dat is geen boolean, dat is een BooleanOp 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.
en bovendien hadden we het uiteraard over het ontbreken van een boolean in SQL, niet in MySQLfladder: dat is geen boolean, dat is een Boolean
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Volgens mij lees je niet goed...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.
En wat is nou een betere afspraak dan een standaard?fladder:
kwestie van afspraken enzo, en die heb je nou eenmaal nodig bij gedistribueerde systemen
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
where gewist = 'false'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')
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