一、需求背景
存在csv格式的个人信息数据,需要将其中的数据提取身份证字段并匹配已有 PERSONAL_INFO数据库内容,更新IDENTITY_CARD字段。
csv中数据格式如下:
"","孟X","男","汉族","19XX-05-04","研究生","","187XXX66","6105XXXXXX91X","","","","","","","","","","","","西安市XXXX号","","","","","","","","正式党员","2008-12-20","2009-12-20","正式党员","中共XX会","正常"
根据PERSON_NAME和 PHONE字段双重匹配。
二、需求实现
function genSql(str) {
const rows = str.split('n');
const result = rows.map(row=> {
const arr = row.split(',');
return `update PERSONAL_INFO set IDENTITY_CARD=${arr[8]} where PERSON_NAME=${arr[1]} and PHONE=${arr[7]}`
}).join('n');
console.log(result);
}
这是一个JavaScript函数,名为genSql。
它接受一个字符串参数str,该字符串包含多行数据,每行数据由逗号分隔。
函数的目的是将这些数据转换为SQL更新语句,并将结果打印到控制台。
解析:
使用split('n')方法将输入字符串str按换行符分割成数组rows。
使用map()方法遍历rows数组,对每一行进行处理。
在处理每一行时,首先使用split(',')方法将其按逗号分割成数组arr。
然后,使用模板字符串生成SQL更新语句,其中${arr[8]}、${arr[1]}和${arr[7]}分别表示IDENTITY_CARD、PERSON_NAME和PHONE的值。
使用join('n')方法将处理后的SQL更新语句数组连接成一个字符串,并赋值给变量result。
最后,使用console.log(result)将结果打印到控制台。
三、具体效果
使用gensql(`输入的csv内容`)进行输出SQL。