Toon posts:

[MySQL] opslaan van getallen beginnend met nul???!!!

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

Verwijderd

Topicstarter
Hoi mede-collega's

Misschien een hele makkelijke vraag, maar hoe kan ik ingodsnaam het volgende getal op slaan in de database

064545456

Die nul die moet ook in de database komen te staan.
Ik heb alles geprobeerd double decimal en int. Maar alle drie halen ze de nullen voor een getal weg.|:(
Hoe kan ik dit omzijlen???? :?


Thanks Collega's _/-\o_

McMally

  • DaRace
  • Registratie: Juni 2001
  • Laatst online: 03-10-2023
als string opslaan!

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 09-01 11:25

D2k

simpelste(als je er verder toch geen sortering op doet): maak er een char van
anders: lees de manual over number spacing oid

Doet iets met Cloud (MS/IBM)


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

drm

f0pc0dert

als er overal een nul voor staat vraag ik me af waarom je de nul dan nog op zou slaan, en niet eraan zou plakken als je een query doet, maar goed.

Misschien heb je wat aan ZERO_FILL, zie de manual

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


Verwijderd

Topicstarter
helaas mensen maar een char is ook niet de uitkomst
hij slaat dan nog steeds de nul niet op
en zerofill dan vuld hij de boel op met nullen als default (tenminste zo begrijp ik het)

Ik wil niet over al nullen voor hebben het gaat onder andere voor codes van producten die kunnen een nul hebben voor aan maar dat is niet echt nodig.

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 21-08 17:14
Het getal 064545456 is gelijk aan 64545456, en ook gelijk aan hex 2712D470. MySQL zal op disk waarschijnlijk het laatste formaat gebruiken.

Maar even rekenen: 03 + 03, is dat 6, 06, of 006?

Kortom, heb je eigenlijk wel een getal, of alleen een verzameling cijfers?

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

Verwijderd schreef op 22 November 2002 @ 12:20:
helaas mensen maar een char is ook niet de uitkomst
hij slaat dan nog steeds de nul niet op
en zerofill dan vuld hij de boel op met nullen als default (tenminste zo begrijp ik het)
Die char zou het wel op moeten lossen. Je gebruik toch wel aanhalingstekens he?

Localhost, sweet localhost


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12:00

Janoz

Moderator Devschuur®

!litemod

Een telefoon nummer is een nummer een nummer als in 'nummer', en niet als in 'waarde'. Voor een telefoonnummer is er verschil tussen 0123 en 123. Voor een 'waarde' is dat niet zo. Velden met een 'waarde' maken geen onderscheid tussen beide varianten waardoor het mis gaat. In principe kun je een telnummer beter in een varchar opslaan. Hierdoor ondervang je ook dingen als:
06 12345678 (spatie)
0512-12345 (streepje)
+31612345678 (met landcode & plusje)

[ Voor 26% gewijzigd door Janoz op 22-11-2002 12:26 . Reden: hmm .. volgende keer maar ff in batch.. Eerst reageren, dan chatten. Beide tegelijk zorgt voor een flinke vertraging ]

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


Verwijderd

Verwijderd schreef op 22 november 2002 @ 12:20:
helaas mensen maar een char is ook niet de uitkomst
hij slaat dan nog steeds de nul niet op
en zerofill dan vuld hij de boel op met nullen als default (tenminste zo begrijp ik het)

Ik wil niet over al nullen voor hebben het gaat onder andere voor codes van producten die kunnen een nul hebben voor aan maar dat is niet echt nodig.
Niet alleen MySQL ziet die 0 als overbodige info voor een getal, maar PHP/ASP/etc natuurlijk ook.

Kortom, je moet forceren dat de variabele waarin deze waarde komt te staan ook van het type string is (door er bijvoorbeeld een " " voor te zetten).

HTH :)

Verwijderd

Topicstarter
THANKS MENSEN

heb er gewoon maar een varchar van gemaakt.
hele toppie nu
gelukkig zijn het maar een paar velden.

ene kant vind ik dat mysql gelyk heeft dat ze die nul weghalen want die is in veel gevallen niet nodig, maar aan de andere kant vind ik toch echt dat een code zoals 009809 gewoon ook een int moet kunnen zyn. wazig foutje van mysql hihihi :-)

in iedere geval THANKS

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 22:06
Janoz schreef op 22 November 2002 @ 12:22:
Een telefoon nummer is een nummer een nummer als in 'nummer', en niet als in 'waarde'. Voor een telefoonnummer is er verschil tussen 0123 en 123. Voor een 'waarde' is dat niet zo. Velden met een 'waarde' maken geen onderscheid tussen beide varianten waardoor het mis gaat. In principe kun je een telnummer beter in een varchar opslaan. Hierdoor ondervang je ook dingen als:
06 12345678 (spatie)
0512-12345 (streepje)
+31612345678 (met landcode & plusje)
Ik ben het wel met je onderscheid eens, maar niet met je terminologie. Naar mijn idee is een "nummer" net zoiets als een "getal" of een "aantal"; eventueel met de nuancering dat je met een nummer een bepaald element uit een reeks aanwijst. Van Dale denkt er ook zo over trouwens.

Je hebt echter gelijk als je zegt dat er onderscheid is tussen een "getal" en een "reeks van cijfers" (wat een telefoonnummer feitelijk is). Een nul aan het begin van een getal heeft per definitie geen betekenis. Als het voor je productcode uitmaakt of je "0001" of "1" schrijft, dan zul je dus inderdaad een reeks karakters op moeten slaan. De term "code" geeft eigenlijk al aan dat het niet om een getal gaat.

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 22:06
Verwijderd schreef op 22 november 2002 @ 12:53:
ene kant vind ik dat mysql gelyk heeft dat ze die nul weghalen want die is in veel gevallen niet nodig, maar aan de andere kant vind ik toch echt dat een code zoals 009809 gewoon ook een int moet kunnen zyn. wazig foutje van mysql hihihi :-)
Ik zal maar even geen commentaar leveren op je spelling en stijl, maar los daarvan vind ik dit een redelijk stomme uitspraak. Zoals ik hierboven al betoogde (en wat Nielsz eigenlijk ook al zei) is er een fundamenteel onderscheid tussen een getal en een code. Een 'int' is kort voor 'integer' wat 'geheel getal' betekent. Het is onzin dat je daar codes in zou op moeten kunnen slaan.

Je had net zo goed kunnen zeggen dat je vindt dat je plaatjes in een 'int' op moet kunnen slaan. Stomme bug in MySQL dat dat niet kan, zeg.

[ Voor 8% gewijzigd door Soultaker op 22-11-2002 12:57 ]


  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Soultaker schreef op 22 November 2002 @ 12:57:
Ik zal [... ...] dat dat niet kan, zeg.
[mod-mode]
De manier waarop jij het brengt komt op mij nogal kortaf over.
Live and let live
[/mod-mode]
Pagina: 1