Devi assolutamente usare SUBSTRING_INDEX che restituirà un certo numero di caratteri fino a quando non viene raggiunto un conteggio specificato in base all'occorrenza di un delimitatore. Nel tuo caso la chiamata sarebbe simile a questa:
SELECT SUBSTRING_INDEX(text_field, ' ', 6) FROM ...
In particolare, questo restituirà fino a sei parole dove definiamo una parola come un insieme di caratteri che non sono spazi delimitati da spazi.
Nota :restituirà la punteggiatura allegata all'ultima parola, che può essere desiderata o meno. Sarebbe abbastanza semplice sostituire qualsiasi carattere di punteggiatura alla fine della stringa in PHP, ma se vuoi rimanere completamente all'interno di SQL penso che tu possa usare TRIM . La sintassi per questo sarebbe qualcosa del tipo:
SELECT TRIM(TRAILING ',' FROM SUBSTRING_INDEX(text_field, ' ', 6)) FROM ...
Potrebbe esserci un'opzione migliore per rimuovere la punteggiatura finale, ma forse questa è un'altra domanda (sto ancora cercando una soluzione migliore di TRIM).