我使用 LOAD DATA INFILE 匯入了一個 CSV 檔案,并將此列稱為 Context。
整個列顯示為空 - 它不應該是空的,因為我已經將 DEFAULT 設定為 NULL。所以我希望 NULL 出現在整個列中。
我試過它是空的還是 NULL 但下面的代碼回傳 0
SELECT COUNT(*) FROM table
WHERE Context IS NULL OR Context = '';
所以現在我不知道問題出在哪里。
僅供參考:此列是 TEXT 資料型別,我可以將其更改為 VARCHAR,但不是 INT - 我不知道它是否與問題有關。
uj5u.com熱心網友回復:
SET col_name={expr | DEFAULT}, ...您可以在匯入資料的同時使用陳述句同時匯入資料并結合函式來操作空值NULLIF(expr1,expr2)。
因此,您的查詢可能如下所示:
LOAD DATA INFILE 'file.txt'
INTO table t1
(column1, @var1)
SET Context = NULLIF(@var1, '');
或者您可以在匯入后操作所有記錄
UPDATE `table` SET Context2 = NULL WHERE Context2 IS NULL;
加載資料
NULLIF
uj5u.com熱心網友回復:
基于此執行緒,我將查詢修改為以下內容并能夠解決問題。
UPDATE table SET Context = NULLIF(Context,' ');
UPDATE table SET Context = NULLIF(Context, '\t');
UPDATE table SET Context = NULLIF(Context, '\n');
UPDATE table SET Context = NULLIF(Context, '\r');
所以最初的問題可能是由 \t 、 \n 或 \r 引起的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/433459.html
下一篇:使用mysqlmax函式時缺少行
