[MySQL] Datatype aangeven in een SELECT

Pagina: 1
Acties:

  • Config
  • Registratie: Januari 2000
  • Laatst online: 06-01-2025
Welnu, ik werk al jaren met MySQL maar hier kan ik toch helemaal niks over vinden :?. De manual, GoT, phpfreakz nergens...dus dan maar een topic.

Kan ik in een mysql query ook een datatype meegeven?

dus dat er bijvoorbeeld dit in een veld staat: "€ 100,00" en dat ik er bijvoorbeeld een double uit kan halen? (ala 100,00). Ik heb al gekeken naar CONVERT() en CAST() maar ik kom er niet helemaal uit...

De voorbeeld query zou dus zijn:

SELECT CAST(prijs AS float) AS prijs FROM table

ofzo... :?

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

drm

f0pc0dert

Volgens mij kan dat niet, nee. In welke context zou je het toe willen passen ?

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


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 26-08 12:42

Janoz

Moderator Devschuur®

!litemod

In principe zou je zo'n soort getal in eerste instantie al als een float op moeten slaan (voor geld eigenlijk een decimal(100,2) oid) Het casten gaat waarschijnlijk fout omdat het euro teken erin staat. Om het goed te kunnen casten zul je eerst de euro eraf moeten slopen (Met stringfuncties) Maar ik raad je echt aan om bij het opslaan al te zorgen voor het juiste data type ipv bij het uitlezen. Naast dat het je op de langere termijn veel werk bespaard is deze manier veel trager.

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


  • Config
  • Registratie: Januari 2000
  • Laatst online: 06-01-2025
drm schreef op 31 december 2002 @ 12:53:
Volgens mij kan dat niet, nee. In welke context zou je het toe willen passen ?
Ik heb eenf fucked up database met prijzen als een TEXT veld. zoiets: "€ 100,08". En daar moet ik op sorteren..maar dat loopt niet lekker (de sortering klopt niet...bijvoorbeeld 10, 100, 20, 30, 4...).

De DB _zuigt_ maar kan ik niet veranderen...

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

drm

f0pc0dert

In dit geval zou je met SUBSTRING een heel eind moeten komen, maar ik zou er zelf liever voor kiezen om de euro-tekens er "gewoon" uit te slopen

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


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

select (replace(substring(prijs, 2), ',', '.') + 0.0) as floating_prijs
order by floating_prijs

zoiets?

  • Config
  • Registratie: Januari 2000
  • Laatst online: 06-01-2025
string functies in mysql??......OOOOOOOOOOOOOhwja! :o

Voor de searchers: uiteindelijk is het dit geworden:

SELECT *, (replace ( substring( ppm, 4 ) , ',', '.' ) + 0.0 ) as floating_ppm, (replace ( aansl_dhz_usb , ',', '.' ) + 0.0 ) as floating_aansluit FROM table WHERE netwerk IN ( 1, 6 ) AND partzak IN ('p', 'pz') ORDER BY abo

Thnx natuurlijk :)

[ Voor 15% gewijzigd door Config op 31-12-2002 13:32 ]


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

[edit: laat maar]

[ Voor 84% gewijzigd door Bosmonster op 31-12-2002 13:34 ]


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

En je gaat nu natuurlijk wel een nieuwe tabel bouwen?

Zodat je dit niet in een live omgeving hoeft te doen?

Programmer - an organism that turns coffee into software.


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

drm

f0pc0dert

Config:
string functies in mysql??......OOOOOOOOOOOOOhwja! :o
:?
Voor de searchers: uiteindelijk is het dit geworden:

SELECT *, (replace ( substring( ppm, 4 ) , ',', '.' ) + 0.0 ) as floating_ppm, (replace ( aansl_dhz_usb , ',', '.' ) + 0.0 ) as floating_aansluit FROM table WHERE netwerk IN ( 1, 6 ) AND partzak IN ('p', 'pz') ORDER BY abo

Thnx natuurlijk :)

Is het niet iets om gewoon in 1x je tabel te updaten, met de juiste waarde, en dan het type veld aan te passen, of zijn er dan andere partijen die in de problemen komen?

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

Pagina: 1