Mysql
 sql >> Database >  >> RDS >> Mysql

Estrai le prime X parole (non solo i caratteri) da MySQL

Devi assolutamente usare SUBSTRING_INDEX che restituirà un certo numero di caratteri fino a quando non viene raggiunto un conteggio specificato in base all'occorrenza di un delimitatore. Nel tuo caso la chiamata sarebbe simile a questa:

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

In particolare, questo restituirà fino a sei parole dove definiamo una parola come un insieme di caratteri che non sono spazi delimitati da spazi.

Nota :restituirà la punteggiatura allegata all'ultima parola, che può essere desiderata o meno. Sarebbe abbastanza semplice sostituire qualsiasi carattere di punteggiatura alla fine della stringa in PHP, ma se vuoi rimanere completamente all'interno di SQL penso che tu possa usare TRIM . La sintassi per questo sarebbe qualcosa del tipo:

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

Potrebbe esserci un'opzione migliore per rimuovere la punteggiatura finale, ma forse questa è un'altra domanda (sto ancora cercando una soluzione migliore di TRIM).