Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Puxe as primeiras palavras X (não apenas caracteres) do mySQL


Você definitivamente quer usar SUBSTRING_INDEX que retornará algum número de caracteres até que uma contagem especificada seja alcançada com base na ocorrência de um delimitador. No seu caso a chamada ficaria assim:
 SELECT SUBSTRING_INDEX(text_field, ' ', 6) FROM ...

Em particular, isso retornará até seis palavras onde definimos uma palavra como um conjunto de caracteres que não são espaços delimitados por espaços.

Observação :retornará pontuação anexada à última palavra, que pode ou não ser desejada. Seria bastante simples substituir quaisquer caracteres de pontuação na cauda da string em PHP, mas se você quiser ficar completamente dentro do SQL, acho que pode usar TRIM . A sintaxe para isso seria algo como:
SELECT TRIM(TRAILING ',' FROM SUBSTRING_INDEX(text_field, ' ', 6)) FROM ...

Pode haver uma opção melhor para remover a pontuação à direita - mas talvez essa seja outra pergunta (ainda estou procurando uma solução melhor do que TRIM).