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

Как да извлечете n-тата дума и да преброите появата на думи в MySQL низ?

По-долу е предложено решение за специфичното на ОП проблем (извличане на 2-ра дума от низ), но трябва да се отбележи, че, както се посочва в отговора на mc0e, действителното извличане на съвпадения на регулярни изрази не се поддържа извън кутията в MySQL. Ако наистина имате нужда от това, тогава вашият избор е основно да 1) да го направите в последваща обработка на клиента или 2) да инсталирате разширение MySQL, за да го поддържате.

BenWells го казва много почти правилно. Работейки от неговия код, ето една леко коригирана версия:

SUBSTRING(
  sentence,
  LOCATE(' ', sentence) + CHAR_LENGTH(' '),
  LOCATE(' ', sentence,
  ( LOCATE(' ', sentence) + 1 ) - ( LOCATE(' ', sentence) + CHAR_LENGTH(' ') )
)

Като работен пример използвах:

SELECT SUBSTRING(
  sentence,
  LOCATE(' ', sentence) + CHAR_LENGTH(' '),
  LOCATE(' ', sentence,
  ( LOCATE(' ', sentence) + 1 ) - ( LOCATE(' ', sentence) + CHAR_LENGTH(' ') )
) as string
FROM (SELECT 'THIS IS A TEST' AS sentence) temp

Това успешно извлича думата IS



  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 заявка във формат CSV?

  2. Как да промените форматите за дата и час в MySQL

  3. Предупреждение:mysql_fetch_array() очаква параметър 1 да бъде ресурс, булев, даден в

  4. Как ефективно да използвам MySQLDB SScursor?

  5. Как да избегнем деленето на нула в MySQL