我一直在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”。
我希望我能说清楚,非常感谢。
答案 0 :(得分:1)
只需选择数据不会更改的列(小时,教师等)以及要更改数据的位置(subjectA)。请注意,“subjectA”被引号括起来。
INSERT INTO
`your_table`
(`hour`, `subject`, `teacher`, `room`)
SELECT
`hour`, 'subjectA', `teacher`, `room`
FROM
`your_table`
WHERE
`subject` = 'subject1'
答案 1 :(得分:0)
由于我无法设法以shell脚本方式实现它的mysql方式,我通过Web界面上传csv文件,其中有一个脚本在场景后面将它发送到mysql,所以我做了一个修改csv文件然后发送到mysql-server的预处理程序,所以这是我在文件开头添加的行:
<?php
$file=$_POST['file'];
system("sed -i -r 's/^(.*)(Original Subject)(.*)$/\\1\\2\\3\\n\\1New Subject\\3/g' $file");
.....
所以我用2行替换原来的行,原来的行加上新的行......