-1

执行此 MySql 查询时:

update order_line_item oli
inner join orders o
set oli.active_orders = o.valid
where oli.order_id = o.id

我不断收到此错误:

SQL 错误 (1292):截断不正确的 DOUBLE 值:'6893Order'

有什么建议么?

附加信息:

  1. "active_orders" 和 "valid" 都是 INT
  2. order_line_item 可以为多行引用相同的 order.id
  3. 表格示例(当前)

    table : order_line_item
    id  order_id    active_orders
    1   1   
    2   2   
    3   3   
    4   4   
    5   4   
    
    
    table : orders
    +-------+-------------+    
    |   id  |   valid     |     
    +-------+-------------+
    |   1   |       1     |   
    |   2   |       1     |   
    |   3   |       0     |  
    |   4   |       1     |  
    |   5   |       1     |   
    +-------+-------------+
    
  4. 通过查询,我尝试复制 orders.valid 并粘贴到 orders_line_item.active_orders:

    table : order_line_item
    +-------+------------+-----------------+    
    |   id  |   order_id |   active_orders |     
    +-------+------------+-----------------+
    |   1   |   1        |        1        |   
    |   2   |   2        |        1        |   
    |   3   |   3        |        0        |  
    |   4   |   4        |        1        |  
    |   5   |   4        |        1        |   
    +-------+------------+-----------------+
    
    table : orders
    +-------+-------------+    
    |   id  |   valid     |     
    +-------+-------------+
    |   1   |       1     |   
    |   2   |       1     |   
    |   3   |       0     |  
    |   4   |       1     |  
    |   5   |       1     |   
    +-------+-------------+
    
4

1 回答 1

0

你说:

  1. "active_orders" 和 "valid" 都是 INT
  2. order_line_item 可以为多行引用相同的 order.id

db<>fiddle 演示

在我的演示中查看我正在制作所有列INT并执行您的更新声明

update order_line_item oli
inner join orders o
set oli.active_orders = o.valid
where oli.order_id = o.id

并且没有错误出现。错误

SQL 错误 (1292):截断不正确的 DOUBLE 值:'6893Order'

似乎很清楚有DOUBLE。你真的运行这个查询并得到这个错误吗?或者请显示您的桌子的描述。

于 2018-10-02T02:11:12.257 回答