簡體   English   中英

在MySQL中轉換列類型

[英]Converting column type in MySQL

我不得不從CSV文件中引入一大堆表。 很多這些文件的列都是INT但是具有空值。 為了加快導入,我剛剛創建了所有列VARCHAR。 現在我在表中有所有這些數據,但需要更改類型。 我可以在MySQL工作台中執行此操作,除了一個問題 - 由於null /空值而導致錯誤。 是否存在某種SQL魔術允許我轉換這些列類型並忽略空值或用該數據類型的正確“空值”替換它們?

您可以更新列以將空白字段設置為NULL,如下所示:

UPDATE mytable SET mycolumn=NULL WHERE TRIM(mycolumn,' ')='';

然后你的普通表改變如下:

ALTER TABLE mytable MODIFY mycolumn VARCHAR(255);

'DEFAULT NULL'是可選的,因為默認情況下字段允許為null。 這應該允許您將列轉換為您希望的任何數據類型,除非在存在混合數據的情況下(例如數字和字符串),並且您希望將列設置為FLOAT。

如果列包含“\\ n”或“\\ r \\ n”而沒有其他內容,上面的示例也沒有考慮刪除回車等,它不會將其設置為NULL,但您可以修改“TRIM(mycolumn,'')”如果你有這些要求就滿足這些要求:aka ...

UPDATE mytable SET mycolumn=NULL WHERE TRIM(mycolumn,"\n")='';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM