Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Ziehen Sie die ersten X Wörter (nicht nur Zeichen) aus mySQL

Sie möchten auf jeden Fall SUBSTRING_INDEX die eine bestimmte Anzahl von Zeichen zurückgibt, bis eine bestimmte Anzahl erreicht ist, basierend auf dem Auftreten eines Trennzeichens. In Ihrem Fall würde der Aufruf so aussehen:

 SELECT SUBSTRING_INDEX(text_field, ' ', 6) FROM ...

Insbesondere werden dadurch bis zu sechs Wörter zurückgegeben wobei wir ein Wort als eine Reihe von Zeichen definieren, die keine Leerzeichen sind, die durch Leerzeichen begrenzt sind.

Hinweis :Dies gibt die Interpunktion zurück, die an das letzte Wort angehängt ist, was erwünscht sein kann oder nicht. Es wäre einfach genug, alle Satzzeichen am Ende der Zeichenfolge in PHP zu ersetzen, aber wenn Sie vollständig in SQL bleiben möchten, können Sie meiner Meinung nach TRIM . Die Syntax dafür wäre ungefähr so:

SELECT TRIM(TRAILING ',' FROM SUBSTRING_INDEX(text_field, ' ', 6)) FROM ...

Möglicherweise gibt es eine bessere Option zum Entfernen der nachgestellten Interpunktion -- aber vielleicht ist das eine andere Frage (ich suche immer noch nach einer besseren Lösung als TRIM).