Vous voulez absolument utiliser SUBSTRING_INDEX qui renverra un certain nombre de caractères jusqu'à ce qu'un nombre spécifié soit atteint en fonction de l'occurrence d'un délimiteur. Dans votre cas, l'appel ressemblerait à ceci :
SELECT SUBSTRING_INDEX(text_field, ' ', 6) FROM ...
En particulier, cela renverra jusqu'à six mots où nous définissons un mot comme un ensemble de caractères qui ne sont pas des espaces délimités par des espaces.
Remarque :cela renverra la ponctuation attachée au dernier mot, qui peut être souhaitée ou non. Il serait assez simple de remplacer tous les caractères de ponctuation à la fin de la chaîne en PHP, mais si vous voulez rester complètement dans SQL, je pense que vous pouvez utiliser TRIM . La syntaxe pour cela serait quelque chose comme :
SELECT TRIM(TRAILING ',' FROM SUBSTRING_INDEX(text_field, ' ', 6)) FROM ...
Il peut y avoir une meilleure option pour supprimer la ponctuation de fin - mais c'est peut-être une autre question (je cherche toujours une meilleure solution que TRIM).