我一直在this post工作,但我无法找到一个合适的解决方案来解决我必须做的事情,接下来就是:我有以下几个对应的方法:
subject1 = subjectA
subject2 = subjectB
subject3 = subjectC然后我有一个csv文件和下一个数据:
hour,subject,teacher,room
10-11,subject1,teacher1,room1
11-12,subject2,teacher2,room1
09-11,subject3,teacher3,room2
10-11,subject4,teacher2,room3然后我将这个csv导出到mysql,所以我需要做的是
duplicate row where subject like "subject1" and replace "subject1" by "subjectA";对于subject2,subject3也是这样,当我说“替换”时,我指的是文本字符串"subject1“为文本字符串"subjectA”。
我希望我能说清楚,非常感谢。
发布于 2013-12-04 13:18:36
由于我无法像mysql那样以shell-script的方式上传csv文件,所以我通过web接口上传csv文件,其中场景后面有一个脚本将它发送到mysql,所以我做了一个预处理,修改了csv文件,然后将它发送到mysql-服务器,所以这是我在文件开始时添加的行(S):
<?php
$file=$_POST['file'];
system("sed -i -r 's/^(.*)(Original Subject)(.*)$/\\1\\2\\3\\n\\1New Subject\\3/g' $file");
.....所以我用两行代替原来的,原来的加上新的.
发布于 2013-12-03 19:48:33
只需选择数据不变的列(小时、教师等)以及要替换数据更改位置的字符串(subjectA)。请注意,"subjectA“被引号包围。
INSERT INTO
`your_table`
(`hour`, `subject`, `teacher`, `room`)
SELECT
`hour`, 'subjectA', `teacher`, `room`
FROM
`your_table`
WHERE
`subject` = 'subject1'https://stackoverflow.com/questions/20359632
复制相似问题