As I understand, the more number of zeroes are required in a block hash, the more it is difficult to find.
That's not exactly how it works, but it's a good introduction. In actuality, the "difficulty" is simply a target number. Any number less than the target is considered "lower than the difficulty" regarless of the number of zeroes.
Now suppose, the target is to find a hash with more than 8 zeroes in the left, but the found hash hash 20 zeroes in left.
With a number that has a fixed number of digits, more zeros on the left means it has to be a smaller number. So, 20 zeroes on the left obviously means that the found has is low enough.
Does it mean that the next hash has to have more than 20 zeroes in left?
No. The next has has to have more than 8 zeroes on the left. That's what you just said the difficulty is "more than 8 zeroes in the left". It won't need more than that unless the difficulty increases in the future.
How network will adjust this sudden difficulty spike ?
This is not a difficulty spike. There is no adjustment necessary. Difficulty is only changed if the total time for the last 2016 blocks is more (or less) than 20160 minutes. If it is more than 20160 minutes, then blocks are too slow and the difficulty is decreased. If it is less than 20160 minutes, then blocks are too fast and the difficulty is increased.
Please let me know if I'm having any conceptual mistake here...
You are having a conceptual mistake here.