今天需要将一个表的数据经过筛选后插入另一个表。首先先写查询语句:
select innerid from aa inner join bb on aa.id=bb.id where innerid >0
这里一查当然没啥问题,数据是那么的整齐。
接下来将数据插入到另一张表中:
INSERT INTO r (innerid)
select innerid from aa inner join bb on aa.id=bb.id where innerid >0
what??? 为啥会报这个错。
经过一番思考后突然想到mysql会有一个隐式转换,在你where语句的后面 innerid >0 相当于把这个字符型的innerid转成了double。
修改后的sql如下
INSERT INTO r (innerid)
select innerid from aa inner join bb on aa.id=bb.id where LENGTH(INNERID)>0
注意查询类型,需要和插入类型保持一致
文档更新时间: 2023-05-27 13:32 作者:admin