1. 程式人生 > >laravel+Mysql 中DB原生SQL操作報1292 Truncated incorrect DOUBLE value問題解決

laravel+Mysql 中DB原生SQL操作報1292 Truncated incorrect DOUBLE value問題解決

報1292 Truncated incorrect DOUBLE value問題的,基本都是因為SQL寫的不標準或者寫錯了。

昨天接到一個批量更新的需求。因為laravel不支援批量的更新操作,故使用了原生的sql進行拼接(可能laravel支援批量,我不知道)。

在做一個批量更新的操作的時候,提示報錯!

錯誤如下:


上面錯誤簡單說就是SQL有問題,我自認為是沒有問題的啊。

我把SQL語句放到Navicat for Mysql中,執行發現是正常的。

SQL語句:


執行結果成功:


在程式碼裡面執行不成功!把SQL拿出來執行沒有一點問題。真實日了狗了!

難道是上次朋友聚餐,少喝了杯酒,把人品也弄差了?????

百度了下,很多1292 Truncated incorrect DOUBLE value 問題的,基本上的回答都是說SQL寫的有問題的。

我仔細看了下SQL,還真有個地方寫的不標準。在 point_history.memo這行的賦值使用了“+”。一般我們為了圖方便都是使用+ 號的,標準的寫法應該是使用函式CONCAT()。

把語句轉換為point_history.memo = CONCAT(point_history.memo, '2017-11-17 10:30:22 由管理員強制轉為有效狀態;') 後,執行成功!

小結

這個問題主要還是日常的書寫習慣造成的,建議大家在操作的時候,儘量按照標準格式進行書寫。否則有時候真不知道問題出在什麼地方。