Mysql
 sql >> база данни >  >> RDS >> Mysql

Издърпайте първите X думи (не само знаци) от mySQL

Определено искате да използвате SUBSTRING_INDEX който ще върне известен брой знаци, докато се постигне определен брой въз основа на появата на разделител. Във вашия случай обаждането ще изглежда така:

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

По-специално, това ще върне до шестдуми където дефинираме дума като набор от знаци, които не са интервали, разделени с интервали.

Забележка :това ще върне пунктуацията, прикрепена към последната дума, която може или не може да бъде желана. Би било достатъчно просто да замените всякакви пунктуационни знаци в края на низа в PHP, но ако искате да останете изцяло в SQL, мисля, че можете да използвате ОТРИМАНЕ . Синтаксисът за това би бил нещо като:

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

Може да има по-добър вариант за премахване на препинателните знаци в края – но може би това е друг въпрос (все още търся по-добро решение от TRIM).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Предоставяне на потребителско разрешение само за преглед на MySQL изглед и нищо друго

  2. PDO::fetchAll срещу PDO::извличане в цикъл

  3. Пълен списък с локали в MySQL

  4. Превъртане през набори от резултати в MySQL

  5. Защо Hibernate/JDBC/MySQL прекъсва връзките след около ден?