Určitě chcete použít SUBSTRING_INDEX který vrátí určitý počet znaků, dokud nebude dosaženo zadaného počtu na základě výskytu oddělovače. Ve vašem případě by hovor vypadal takto:
SELECT SUBSTRING_INDEX(text_field, ' ', 6) FROM ...
Konkrétně to vrátí až šest slov kde slovo definujeme jako množinu znaků, které nejsou mezerami oddělenými mezerami.
Poznámka :toto vrátí interpunkci připojenou k poslednímu slovu, což může nebo nemusí být žádoucí. Bylo by dost jednoduché nahradit jakékoli interpunkční znaky na konci řetězce v PHP, ale pokud chcete zůstat zcela v rámci SQL, myslím, že můžete použít TRIM . Syntaxe pro to by byla něco jako:
SELECT TRIM(TRAILING ',' FROM SUBSTRING_INDEX(text_field, ' ', 6)) FROM ...
Možná existuje lepší možnost pro odstranění koncové interpunkce – ale to je možná jiná otázka (stále hledám lepší řešení než TRIM).