sql >> Databáze >  >> RDS >> Mysql

Vytáhněte prvních X slov (nejen znaků) z mySQL

Určitě chcete použít SUBSTRING_INDEX který vrátí určitý počet znaků, dokud nebude dosaženo zadaného počtu na základě výskytu oddělovače. Ve vašem případě by hovor vypadal takto:

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

Konkrétně to vrátí až šest slov kde slovo definujeme jako množinu znaků, které nejsou mezerami oddělenými mezerami.

Poznámka :toto vrátí interpunkci připojenou k poslednímu slovu, což může nebo nemusí být žádoucí. Bylo by dost jednoduché nahradit jakékoli interpunkční znaky na konci řetězce v PHP, ale pokud chcete zůstat zcela v rámci SQL, myslím, že můžete použít TRIM . Syntaxe pro to by byla něco jako:

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

Možná existuje lepší možnost pro odstranění koncové interpunkce – ale to je možná jiná otázka (stále hledám lepší řešení než TRIM).



  1. Jak mohu použít jQuery ke spouštění dotazů MySQL?

  2. T-SQL:Na rozdíl od řetězení řetězců - jak rozdělit řetězec do více záznamů

  3. vytvořit ID v mysql tabulce auto_increment (po skutečnosti)

  4. Změna posunu časového pásma na hodnotě datetimeoffset na serveru SQL Server (T-SQL)