O'Reilly logo
  • Peng Zhang thinks this is interesting:

It guarantees that any rows a transaction reads will “look the same” in subsequent reads within the same transaction, but in theory it still allows another tricky problem: phantom reads.

From

Cover of High Performance MySQL, 3rd Edition

Note

Repeatable Read level makes sure the same rows look the same within the transaction but doesn't guarantee that the numbers of rows remain the same.