douyi3833 2013-12-03 19:12
浏览 35
已采纳

mysql:复制表中的某些行,更改重复的信息

I've been working around this post, but I can not arrive to a suitable solution for what I have to do, which it is next: I have this equivalences:

subject1 = subjectA
subject2 = subjectB
subject3 = subjectC

then I have a csv file with next data:

hour,subject,teacher,room
10-11,subject1,teacher1,room1
11-12,subject2,teacher2,room1
09-11,subject3,teacher3,room2
10-11,subject4,teacher2,room3

then I export this csv to mysql, so what I need to do is

duplicate row where subject like "subject1" and replace "subject1" by "subjectA";

and the same for subject2, subject3, when I say replace, I mean the text string "subject1" by the text string "subjectA".

I hope I could make myself clear, thanks a lot.

  • 写回答

2条回答 默认 最新

  • duanlu6268 2013-12-04 13:18
    关注

    As I couldn't manage to make it the mysql way I did it the shell-script way, I upload the csv file through a web interface where there is a script behind the scene that send it to the mysql, so I did a preprocess that modify the csv file and then send it to the mysql-server, so this is the line(s) I added at the begining of the file:

    <?php
    $file=$_POST['file'];
    
    system("sed -i -r 's/^(.*)(Original Subject)(.*)$/\\1\\2\\3\
    \\1New Subject\\3/g' $file");
    
    .....
    

    So I substitute the original line by 2 lines, the original one plus the new one...

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?