首頁 >資料庫 >mysql教程 >如何在 MySQL 和 PostgreSQL 中提取第 N 個單字並統計其出現次數?

如何在 MySQL 和 PostgreSQL 中提取第 N 個單字並統計其出現次數?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-08 21:30:12275瀏覽

How Can I Extract the Nth Word and Count its Occurrences in MySQL and PostgreSQL?

在MySQL 中提取第N 個單字並統計單字出現次數

提出的問題涉及MySQL 查詢可以提取特定單字的可能性從文字字串中提取並計算其出現次數。提供的範例旨在從文本中提取第二個單字。

Postgres 的查詢解決方案

雖然 MySQL 本身不支援直接正規表示式比對擷取,但其他資料庫(如 PostgreSQL)提供更直接的方法。在 PostgreSQL 中,可以使用以下查詢:

SELECT word, count(*)
FROM (
  SELECT SPLIT_PART(text, ' ', 2) AS word
  FROM (SELECT 'THIS IS A TEST' AS text) AS tmp
) AS words
GROUP BY word;

此查詢使用 SPLIT_PART 函數根據空格將文字拆分為單字並提取第二個單字。產生的表格以單字出現次數將單字分組。

MySQL 的解決方法

對於 MySQL,需要不同的方法,因為不支援直接正規表示式擷取。一種解決方法涉及使用子字串和定位函數的組合:

SELECT SUBSTRING(
  text,
  LOCATE(' ', text) + CHAR_LENGTH(' '),
  LOCATE(' ', text, ( LOCATE(' ', text) + 1 ) - ( LOCATE(' ', text) + CHAR_LENGTH(' ') )
) AS word, count(*)
FROM (SELECT 'THIS IS A TEST' AS text) AS tmp
GROUP BY word;

此查詢定位文字中第一個空格的位置,該位置位於第一個單字之後。然後,它將空格的長度加到該位置以開始提取第二個單字。提取的子字串的長度是透過定位下一個空格並從中減去起始位置來計算的。

此方法需要調整以提取不同的第 n 個單字。

以上是如何在 MySQL 和 PostgreSQL 中提取第 N 個單字並統計其出現次數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn