[MySQL] SQL tabel aangeleverd met varchars,hoe null bepalen?

Pagina: 1
Acties:

  • M_V
  • Registratie: Maart 2001
  • Laatst online: 30-11 11:57
Ik heb een tabel aangeleverd gekregen (in sqlformaat) die volstaat met varchars. Een aantal van de velden is echter leeg. Ik wil deze varchars omzetten in doubles, dates, ints etc. Het probleem is dat die lege velden dus moeten worden omgezet in "null", anders geeft mysql een error, dat een leeg veld geen juiste input voor een double is....

Hoe doe je dit?

Ik heb dus:
12 ---- ------- 24.4
34 ---- 23 -------

En dit moet:
12 ---- null ----- 24.4
34 ----- 23 ----- null

worden....

  • Paul
  • Registratie: September 2000
  • Laatst online: 17:07
Eerst van alle lege varchars een null maken?

Iets in de richting van: UPDATE bla SET veldX = NULL WHERE veldX = ""

"Your life is yours alone. Rise up and live it." - Richard Rahl
Rhàshan - Aditu Sunlock


  • M_V
  • Registratie: Maart 2001
  • Laatst online: 30-11 11:57
Paul Nieuwkamp schreef op zaterdag 13 januari 2007 @ 00:38:
Eerst van alle lege varchars een null maken?

Iets in de richting van: UPDATE bla SET veldX = NULL WHERE veldX = ""
Je hebt gewoon gelijk, ik had met mijn lompe hoofd een empty field aangeduid met ' ', en toen kreeg ik een foutmelding dus dacht ik dat het niet kon.

Zou je ook de hele tabel in 1x kunnen doen, of moet het per kolom?

Verwijderd

In eerste instantie zou je zeggen, dat het in één keer kan maar door WHERE VeldX = "" moet het m.i. toch per veld.

Ik dump altijd de hele tabelstructuur naar een textbestand. Daarna brouw ik gewoon een hele reeks UPDATE statements dit doe ik meestal met UltraEdit, omdat zij zo'n mooie feature hebben dat je per "kolom" kan editen. (Toetsencombinatie ALT-C)

Op die manier maak je heel snel de reeks updatestatements, die je nodig hebt.
UPDATE VeldX SET VeldX = NULL WHERE VeldX = "";
UPDATE VeldY SET VeldY = NULL WHERE VeldY = "";
UPDATE VeldY SET VeldZ = NULL WHERE VeldZ = "";