sql >> Base de Datos >  >> RDS >> Mysql

Extraiga las primeras X palabras (no solo caracteres) de mySQL

Definitivamente quieres usar SUBSTRING_INDEX que devolverá una cierta cantidad de caracteres hasta que se logre un recuento específico en función de la aparición de un delimitador. En su caso, la llamada se vería así:

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

En particular, esto devolverá hasta seis palabras donde definimos una palabra como un conjunto de caracteres que no son espacios delimitados por espacios.

Nota :esto devolverá la puntuación adjunta a la última palabra, que puede o no ser deseada. Sería bastante simple reemplazar cualquier carácter de puntuación al final de la cadena en PHP, pero si desea permanecer completamente dentro de SQL, creo que puede usar TRIM . La sintaxis para eso sería algo como:

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

Puede haber una mejor opción para eliminar la puntuación final, pero tal vez esa sea otra pregunta (todavía estoy buscando una solución mejor que TRIM).