Replace a set of vectors in a list from another set of vectors
A/.Rule@@@Select[Tuples[{A,B}],#[[1,2]]===#[[2,2]]&]
{{0,0.1,821,"new1"},{200,0.2,120,"E"},{310,0.32,911,"new"},{400,0.33,800,"GO"}}
Perhaps (apologies if I have misinterpreted):
A /. ({_, #[[2]], __} -> # & /@ B)
What about:
GatherBy[ Join[A, B], #[[2]] & ][[ All , -1]]
{{0, 0.1, 821, "new1"}, {200, 0.2, 120, "E"}, {310, 0.32, 911, "new"}, {400, 0.33, 800, "GO"}}
If order does not matter:
DeleteDuplicatesBy[Join[B, A], #[[2]] &]