MySQL 5.7 報錯:ERROR 1292 (22007): Truncated incorrect DOUBLE value: 'CR40020180611004'
阿新 • • 發佈:2018-10-31
在生產環境update一個語句報錯: ERROR 1292 (22007): Truncated incorrect DOUBLE value: 'CR40020180611004' 經過網路查詢是資料型別不一致導致的。 --查看錶的型別: mysql> desc sc_stockorder_2.outstockorder; +-------------------+---------------+------+-----+-------------------+-----------------------------+ | Field | Type | Null | Key | Default | Extra | +-------------------+---------------+------+-----+-------------------+-----------------------------+ | id | bigint(20) | NO | PRI | NULL | | | RefOrderNo | varchar(50) | NO | MUL | NULL | | | Org_Id | int(11) | NO | | NULL | | | BatchNo | varchar(50) | YES | MUL | | | | Batch_Id | varchar(50) | YES | MUL | | | | State | tinyint(4) | YES | | 0 | | ... mysql> select state,reforderno from sc_stockorder_2.outstockorder where reforderno=402828300248; +-------+--------------+ | state | reforderno | +-------+--------------+ | 1 | 402828300248 | +-------+--------------+ 1 row in set, 23288 warnings (0.48 sec) mysql> update sc_stockorder_2.outstockorder set state = 3 where reforderno in (402828300259,402828300248); ERROR 1292 (22007): Truncated incorrect DOUBLE value: 'CR40020180611004' mysql> update sc_stockorder_2.outstockorder set state=3 where reforderno='402828300248'; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 出錯原因:where條件中的值傳入了錯誤的資料型別。reforderno是bigint型別的但是實際儲存的。 具體原因待查!