出現該Data truncation: Truncated incorrect DOUBLE value: '15,688' 的原因:還是主要由於非法數據導致的。排查方法 可用函數自帶的length方法可以逐步排查。
下面我大概說一個可以引發該問題的情況。比如 表里有這么一個字段暫且 為字段A 表示 價格(price)吧。總之就是存儲數字類型的字段。最簡單的 字段類型 我們可以定義為
FLOAT,DOUBLE,DECIMAL,VARCHAR 等類型。 其中 FLOAT,DOUBLE,DECIMAL用來存儲數是沒有問題的。但是 用 VARCHAR 存儲價格 數字 一般也是沒有問題的,比如能用
FLOAT,DOUBLE,DECIMAL 存儲的數據 你用 VARCHAR 類型 去存取 是沒有問題的。然后你在VARCHAR 這列上對price 使用sum 求和 也是沒有問題的。
但是 其中有一條數據 含了有單位元即 真實的數據 為 88,888元 ,這樣存儲 也是沒有問題的。因為是VARCHAR 類型嘛。但是其他的數據都是 VARCHAR 類型的數據 ,而這一條包含了 數字和漢字 ,然后你再去用 sum 對該列求和 就會 出現這樣的問題。總之 ,落地的數據最好合法,如果字段類型設計不規范 ,很容易出現問題的。 比如 存儲價格 就用FLOAT,DOUBLE,DECIMAL
這其中的,畢竟存儲的時候數據庫底層 相當於 給你做了校驗,那么出錯 的概率就低了。