Je wilt zeker SUBSTRING_INDEX die een aantal tekens retourneert totdat een gespecificeerd aantal is bereikt op basis van het optreden van een scheidingsteken. In uw geval zou de oproep er als volgt uitzien:
SELECT SUBSTRING_INDEX(text_field, ' ', 6) FROM ...
Dit levert in het bijzonder maximaal zes woorden . op waar we een woord definiëren als een reeks tekens die geen spaties zijn die worden gescheiden door spaties.
Opmerking :dit zal interpunctie teruggeven aan het laatste woord, wat al dan niet gewenst is. Het zou eenvoudig genoeg zijn om eventuele leestekens aan het einde van de tekenreeks in PHP te vervangen, maar als je volledig binnen SQL wilt blijven, denk ik dat je TRIM . De syntaxis daarvoor zou zoiets zijn als:
SELECT TRIM(TRAILING ',' FROM SUBSTRING_INDEX(text_field, ' ', 6)) FROM ...
Er is misschien een betere optie om de leestekens achteraan te verwijderen -- maar misschien is dat een andere vraag (ik ben nog steeds op zoek naar een betere oplossing dan TRIM).