MYSQL 更新語句報錯

2021-10-24 05:12:31 字數 1460 閱讀 5395

相同的語句 查詢的時候沒有問題,轉換成功更新語句就報錯,錯誤資訊:

truncated incorrect double value: 『21700-21800』

查詢sql如下:

select dcf.id as flightid,p.ratio_match as ratiomatch 

from der_certain_flight dcf

left join

(select flight_id,

round

(sum(if

(abs

(level_qar-level_plan)

>

600,

0,dstg_qar))/

sum(dstg_qar)

*100,2

) as ratio_match

from econ_seg_hybrid_merge_v

where phase_plan=

'crs' and phase_qar=

'crs'

group by flight_id

) p on dcf.id=p.flight_id

更新sql如下:

update der_certain_flight dcf

left join (

select flight_id,

round

(sum(if

(abs

(level_qar-level_plan)

>

600,

0,dstg_qar))/

sum(dstg_qar)

*100,2

) as ratio_match

from econ_seg_hybrid_merge_v

where phase_plan=

'crs' and phase_qar=

'crs'

group by flight_id

) p on dcf.id=p.flight_id

set dcf.alt_match_rate = p.ratio_match

where p.ratio_match is not null

sql有點複雜 -_-||

於是我懷疑是查詢語句中存在問題。。。。

經過對錯誤資訊的分析我從語句相減的兩個字段查詢問題

發現,這兩個欄位都是字串型別,然後我用sql查了一下資料,發現存在 21700-21800 這樣的資料

在更新語句中對字串進行擷取和轉換,取第乙個

MySQL批量更新語句

update mytable set myfield case id when 1then value when 2then value when 3then value endwhere id in 1,2,3 例如 update categories set display order case...

mysql插入更新語句

mysql自己的插入更新方法 on duplicate key update。例如 建立表create table test t id int primary key,name varchar 255 插入一條資料 insert into test t values 0,first 查詢資料結果如圖...

mysql語句更新 mysql的更新語句怎麼寫

1.mysql更新資料語句怎麼寫 if mysql num rows rs 0 else 當有記錄 foreach user info as arr mysql update k99 set nickname arr nickname where id arr id 更新表 切記要加where條件,...