sql >> Databasteknik >  >> RDS >> Mysql

Dra de första X orden (inte bara tecken) från mySQL

Du vill definitivt använda SUBSTRING_INDEX vilket kommer att returnera ett visst antal tecken tills ett specificerat antal uppnås baserat på förekomsten av en avgränsare. I ditt fall skulle samtalet se ut så här:

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

I synnerhet kommer detta att returnera upp till sex ord där vi definierar ett ord som en uppsättning tecken som inte är mellanslag avgränsade av mellanslag.

Obs :detta kommer att returnera skiljetecken som är kopplad till det sista ordet, vilket kanske är önskvärt eller inte. Det skulle vara enkelt nog att ersätta eventuella skiljetecken längst ner på strängen i PHP, men om du vill hålla dig helt inom SQL tror jag att du kan använda TRIM . Syntaxen för det skulle vara något i stil med:

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

Det kan finnas ett bättre alternativ för att ta bort den efterföljande skiljetecken – men det kanske är en annan fråga (jag letar fortfarande efter en bättre lösning än TRIM).



  1. Hur man hämtar ett OBJECT_NAME() från en annan databas i SQL Server

  2. Konvertera datumformat till DD/MMM/ÅÅÅÅ-format i SQL Server

  3. Hur man exklusivt låser mysql-databas?

  4. Prestanda för att söka över två mysql-databaser på samma server?