Visualizzazione dei risultati da 1 a 6 su 6

Discussione: mysql e tipi di dati

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    46

    mysql e tipi di dati

    ciao a tutti, ho un piccolo problema:
    ho una tabella con un campo decimal(10,2) nel database mysql, quando importo i dati da file csv delimitato da tab attraverso l'utilità 'importa' di mysql i numeri dopo la virgola vengono automaticamente azzerati, o se preferite arrotondati per difetto all'intero inferiore
    es.
    nel file ho un valore di 897,75 in un campo 'prezzo', una volta importato nel db trovo 897,00

    non ho la più pallida idea di quale sia il motivo, potreste aiutarmi?

    grazie

  2. #2
    E' auspicabile che quella virgole sia un punto....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    46
    ...capito, il problema stà proprio nelle virgola, con il punto và tutto bene...

    ma come posso risolvere il problema in mysql? io devo importare il file csv direttamente nel db (file che devo prendere per forza così com'è, cioè con la virgola) ....usando php potrei formattarlo con il punto ma, come detto, devo importarlo direttamente nella tabella ...

    esiste un sistema per far digerire la virgola come punto a mysql?

  4. #4
    si, aggiungendo un campo varchar alla tabella. Dopo che hai importato i dati potresti "trasferirli" nella colonna numerica con un

    update ...set campo_numerico = replace(campo_varchar, ',' , '.')

    forse anche con altri workaround, ma il campo che riceve il valore con la virgola deve comunque essere un varchar se importi con LOAD DATA. se invece scorri il file .csv riga per riga, potresti fare la sostituzione in php.

    Altro esempio: importare in una tabella temporanea, correggere il dato e inserire nella tabella reale.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    46
    :master: ..credo che con il campo varchar posso risolvere il problema ....la query replace la posso eseguire 'al volo' ....
    adesso ci ragiono un attimino sopra e provo, poi ti faccio sapere l'esito ..magari può tornare utile a qualcuno che ha il mio stesso problema ..

    grazie per le risposte...mi hanno reso tutto più chiaro ...

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    46
    ho risolto così:
    1-ho cambiato il tipo di dati del campo in varchar e inserisco il numero con la virgola nel db
    2-ho inserito la funzione number_format nel codice che và a 'pescare' nel db - tutte le operazioni svolte dal programma da qui in avanti useranno i dati formattati ....

    ..spero di essere stato utile a qualcuno

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.