在做项目时,经常会遇到这样的需求:用户给我们发过来一些数据,要求我们把这些数据导入到数据库中,对于少量的数据来说,用最原始的方法就可以解决,直接在SQL里面用语句来实现,但是如果是成千上万条数据,那么就考虑简洁方法实现。
1、将Excel的数据整理好,通过SQL的导入功能直接导入到数据库中,但是要保证数据库的字段和Excel的字段一致。
2、通过Excel生成相应的SQL语句,复制相关的SQL语句执行。例:
格式:="INSERT INTO 表名 (字段1,字段2,字段3, , ) VALUES('"&A1&"','"&B1&"','"&C1&"');"
="INSERT INTO lb_contract_info (CONTRACT_NO,CUSTOMER_NAME,START_DAY,OVER_DAY) VALUES('"&A1&"','"&B1&"','"&C1&"','"&D1&"');"
MySQL使用查询拼接实现批量处理语句:
SELECT CONCAT('insert into `lc_rent_income` (',
'`ID`,',
'`PROJECT_ID`,',
'`PROJECT_PLAN_NUMBER`,',
'`CONTRACT_ID`,',
')',
'values',
'(',
'replace(uuid(),\'-\',\'\'),',
'\'',PLAN.PROJECT_ID,'\',',
'\'', PLAN.PROJECT_PLAN_NUMBER,'\',',
'\'',PLAN.CONTRACT_ID,'\',',
') ;')
FROM LC_CONTRACT_RENT_PLAN PLAN
LEFT JOIN LB_CONTRACT_INFO ci
ON CI.ID = PLAN.CONTRACT_ID
WHERE ci.contract_number IN ('FB0010')
AND DATE_FORMAT(PLAN.PLAN_DATE,'%Y/%m/%d') <= DATE_FORMAT('2019/04/03','%Y/%m/%d');
Oracle使用查询拼接实现批量处理语句:
SELECT 'upadte lb_contract_info set project_id=''' || lpi.id || ''' where 1=1; ' FROM lb_project_info lpi;
其它处理语句:
你的鼓励将是我创作的最大动力
转载请注明出处:BestEternity亲笔。