sql >> Database >  >> RDS >> Mysql

Haal de eerste X woorden (niet alleen tekens) uit mySQL

Je wilt zeker SUBSTRING_INDEX die een aantal tekens retourneert totdat een gespecificeerd aantal is bereikt op basis van het optreden van een scheidingsteken. In uw geval zou de oproep er als volgt uitzien:

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

Dit levert in het bijzonder maximaal zes woorden . op waar we een woord definiëren als een reeks tekens die geen spaties zijn die worden gescheiden door spaties.

Opmerking :dit zal interpunctie teruggeven aan het laatste woord, wat al dan niet gewenst is. Het zou eenvoudig genoeg zijn om eventuele leestekens aan het einde van de tekenreeks in PHP te vervangen, maar als je volledig binnen SQL wilt blijven, denk ik dat je TRIM . De syntaxis daarvoor zou zoiets zijn als:

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

Er is misschien een betere optie om de leestekens achteraan te verwijderen -- maar misschien is dat een andere vraag (ik ben nog steeds op zoek naar een betere oplossing dan TRIM).



  1. Uitvoeringsvolgorde van voorwaarden in SQL 'where'-clausule

  2. Spring data JPA:ophalen Geen aliassen gevonden in resultaat tuple! fout bij het uitvoeren van aangepaste query

  3. SQL WHERE Meerdere voorwaarden

  4. Letterlijke tekenreeksen en escape-tekens in postgresql