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

Træk de første X ord (ikke kun tegn) fra mySQL

Du vil bestemt bruge SUBSTRING_INDEX hvilket vil returnere et vist antal tegn, indtil et bestemt antal er opnået baseret på forekomsten af ​​en afgrænsning. I dit tilfælde vil opkaldet se sådan ud:

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

Dette vil især returnere op til seks ord hvor vi definerer et ord som et sæt tegn, der ikke er mellemrum afgrænset af mellemrum.

Bemærk :dette vil returnere tegnsætning knyttet til det sidste ord, som måske eller måske ikke er ønsket. Det ville være simpelt nok at erstatte eventuelle tegnsætningstegn i halen af ​​strengen i PHP, men hvis du vil forblive helt inden for SQL, tror jeg, du kan bruge TRIM . Syntaksen for det ville være noget som:

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

Der er muligvis en bedre mulighed for at fjerne den efterfølgende tegnsætning – men det er måske et andet spørgsmål (jeg leder stadig efter en bedre løsning end TRIM).



  1. Prøvestørrelse og varigheden af ​​OPDATERINGSSTATISTIK:Betyder det noget?

  2. MySQL-sammenføjningstabeller grupperes efter sumproblem

  3. oracle sql:opdater hvis der findes andet indsæt

  4. Vælg dynamiske kolonner i mysql