You can use
SUBSTRING_INDEX(str,delim,count)[
^] for this.
First value:
SUBSTRING_INDEX( batch, '@', 1 )
Second value:
SUBSTRING_INDEX( SUBSTRING_INDEX( batch, '@', -2 ), '@', 1 )
Third value:
SUBSTRING_INDEX( batch, '@', -1 )
I have not tested this, but based on the documentation this should work.