Q:

Find the middle of a string after first space and before last in MySql

Given a Name Field with Contents "A B C D" how can I extract "B C"? 
I can use:

substring_Index(Name,' ',1) to extract 'A'
substring_Index(Name,' ',-1) to extract 'D'

But am not sure how to combine those to get the middle string.  One issue is that both 'A' and 'D' can be anywhere from 1 to 4 characters and there can also be 'A B D'.  So basically looking to extract whatever is not the two substrings above. 

A:

After getting some good answers I tried my own approach which seems to automatically account for 

However many words between 'A' and 'D'
However many letters in 'A' or 'D'
Whether or not 'A' starts with same letter as D

Sorry for not taking time to do sqlfiddle deep in middle of project but as you can see works on any pattern:
Original 'A B C D' pattern:
 Select 'A B C D', substring('A B C D',(char_length(substring_Index('A B C D',' ',1))+2),(char_length('A B C D')-char_length(substring_Index('A B C D',' ',-1)))-(char_length(substring_Index('A B C D',' ',1))+2))  

More words between 'A' and 'D':
Select 'A B C X D', substring('A B C X D',(char_length(substring_Index('A B C X D',' ',1))+2),(char_length('A B C X D')-char_length(substring_Index('A B C X D',' ',-1)))-(char_length(substring_Index('A B C X D',' ',1))+2)) 

Length of 'A' and 'D' greater than one letter:
Select 'AA B C DDDD', substring('AA B C DDDD',(char_length(substring_Index('AA B C DDDD',' ',1))+2),(char_length('AA B C DDDD')-char_length(substring_Index('AA B C DDDD',' ',-1)))-(char_length(substring_Index('AA B C DDDD',' ',1))+2)) 

'A' and 'D' start with same letter (issue in earlier answer):
Select 'A B C A', substring('A B C A',(char_length(substring_Index('A B C A',' ',1))+2),(char_length('A B C A')-char_length(substring_Index('A B C A',' ',-1)))-(char_length(substring_Index('A B C A',' ',1))+2)) 

