Chaîne de tronquer sur la longueur, mais pas de découpage de mots autorisés

Je veux limiter une chaîne de caractères de longueur dans MYSQL sur une certaine longueur, mais je ne veux pas de découper des mots pour se produire.

Quand je fais:

SELECT SUBSTRING('Business Analist met focus op wet- en regelgeving', 1, 28)

Je reçois ceci comme résultat:

Business Analist met focus o

Mais je voudrais

Business Analist met focus

Comment puis-je appliquer une limite de 28 caractères, mais éviter de découper les mots? Bien sûr, il est facile de [insérer le langage de programmation de choix ici] ;-), mais je veux savoir si il est possible de MYSQL dans une simple déclaration.

  • Vous êtes à la recherche pour le "retour" dans MySQL. En quelque sorte.
  • Vous avez besoin de logique ici. En d'autres termes, vous avez besoin d'une instruction if. Si MySQL supporte si, alors utilisez-le, sinon, pas moyen
  • je pense que c'est assez cher de l'opération pour mysql. il suffit de hacher le mot et de s'en débarrasser plus tard, quel que soit le langage de programmation que vous utilisez.
  • Pas vraiment, voir le point 5, paragraphe 5. Favorisant PHP via SQL) sitepoint.com/mysql-mistakes-php-developers
  • il y a une différence entre la mise en œuvre AVG dans votre PHP et de faire des sous-chaîne. les chances sont que si vous êtes en train de faire sous-chaîne que vous aurez besoin de faire d'autres opérations plus complexes en php de toute façon.
  • Les bons points. La raison pour laquelle j'avais besoin de ce à la fois dans MYSQL, c'est que la sortie peut alors être directement introduit dans un moteur de recherche plein texte. Cela permettrait de raccourcir l'indice considérablement le temps d'.

InformationsquelleAutor Ward Bekker | 2011-07-11